function main() {
var s = readLine();
var n = parseInt(readLine());
var rep = 0;
var repArray = []
//calculate each case
while(repArray.length < n){
for(let j = 0; j < s.length; j++){
if(repArray.length > n){
break;
}
repArray.push(s[j])
}
}
for(let a = 0; a < repArray.length; a++){
if(repArray[a] === 'a'){
rep++
}
}
console.log(rep)
}
1836 ms: Mark-sweep 597.4 (605.3) -> 359.7 (368.6) MB, 101.7 / 0.0 ms [allocation failure] [GC in old space requested].
1938 ms: Mark-sweep 359.7 (368.6) -> 359.7 (368.6) MB, 102.3 / 0.0 ms [allocation failure] [GC in old space requested].
2040 ms: Mark-sweep 359.7 (368.6) -> 359.7 (367.6) MB, 101.6 / 0.0 ms [last resort gc].
2142 ms: Mark-sweep 359.7 (367.6) -> 359.7 (367.6) MB, 101.7 / 0.0 ms [last resort gc].
<---JS StackTrace--->
=====JS栈迹===================================================================
安全上下文:0x10178C2CFB51 2:main[/run-N6KBYU8CQZCNEXKH0TBM/solution.JS:~30][PC=0x2859725AEC0](this=0x10178C2E6119)3:/*匿名*/[/run-N6KBYU8CQZCNEXKH0TBM/solution.JS:21][PC=0x2859725717E](this=0x2AF8D3A77E81)4:emitNone(又名emitNone)[events.JS:91][PC=0x28597256C33](Handler=0x2AF8D3A78049,是...
致命错误:CALL_AND_RETRY_LAST分配失败-JavaScript堆内存不足1:node::abort()[/usr/local/nodejs-binary/bin/node]2:0x1098b2c[/usr/local/nodejs-binary/bin/node]3:v8::Utils::reportapifailure(char const*,char const*)[/usr/local/nodejs-binary/bin/node]4:v8::internal::v8::fatalprocessoutofmemory(char const*,(int)[/usr/local/nodejs-binary/bin/node]6:0xC4553F[/usr/local/nodejs-binary/bin/node]7:v8::internal::runtime_growarrayElements(int,v8::internal::object**,v8::internal::isolate*)[/usr/local/nodejs-binary/bin/node]8:0x285971079a7
寻找一个有效的算法是一个问题。你不能用蛮力来解决这类问题。
n
故意设置为较高的值,这样您就不会试图使用暴力。10^12
是1万亿次
,即使您可以在1纳秒
中运行循环的每个迭代,也需要1000秒
,考虑到不可能在1纳秒
中运行每个迭代,这是很长的时间。
您面临的问题是,由于空间复杂性
,您试图在内存中存储(n=10^12)
(Max value)字符。如果每个字符1字节
,那么我们需要的内存大小是
10^12 bytes = 1000 Giga bytes = 1 Terra byte
您在内存中存储此值时从未遇到过问题。意图是让你找到一个聪明的方法来解决它,而不需要存储所有的价值。
现在,聪明的方法是可以计算s
中有多少a
。现在所要做的就是找出如果只有n
字符,可以重复多少字符串s
。
下面剧透(点击/悬停查看答案):
问题内容: 我试图用NodeJS编写代码,从外部API抓取数据,然后使用Mongoose在MongoDB中填充它们。在这之间,我将检查该特定对象是否已经存在于Mongo中。下面是我的代码。 我的问题是,由于NodeJS回调是并行的,因此不会按顺序调用它。我的最终结果将是这样的: 呼叫报告API console.log(长度)= 100 ^^^^^^^^^^^^^^^^^^^^^^^^^ conso
问题内容: 这个问题已经在这里有了答案 : 循环内的JavaScript封闭-简单的实际示例 (44个答案) 2年前关闭。 我正在运行以下形式的事件循环: 我正在尝试显示一系列警报,显示从0到10的数字。问题是,当触发回调函数时,循环已经经历了几次迭代,并且显示了更高的值。有关如何解决此问题的任何建议? 问题答案: 在启动所有异步操作时,循环将立即运行到完成。当他们将来完成某个时间并调用其回调时,
问题内容: 我有几个div的,,,…和要指派点击处理对他们说: 但是,我没有得到单击时的显示(就像其他所有单击一样)。我究竟做错了什么? 问题答案: 在Javascript 中的循环中创建闭包是一个常见的错误。您需要具有以下某种回调函数: 由于这个问题仍然受到关注,并且ES6也越来越受欢迎,因此我建议使用一种现代的解决方案。如果您编写ES6,则可以使用关键字,它使变量在循环本地而不是全局: 它更短
如果我像下面这样做一个异步调用,如何将它们与promise联系起来,这样我就可以按顺序做事了?在这个例子中,最终发生的是会将项按顺序推入。我更喜欢有promise的回答,但只要有效,什么都行
问题内容: 我有一个数组(称为),其中包含数百个天文学图像文件的名称。然后处理这些图像。我的代码有效,并且需要几秒钟来处理每个图像。但是,一次只能执行一张图像,因为我是通过循环运行阵列: 没有理由我必须先修改映像,因此可以利用计算机上的所有4个内核,每个内核都通过for循环在不同的映像上运行吗? 我已经阅读了有关该模块的信息,但是不确定如何在我的情况下实现它。我热衷于工作,因为最终我必须在10,0
问题内容: 我刚接触Python,但仍处于学习曲线的艰难阶段。感谢您的任何评论。 我有一个很大的for循环要运行(在许多迭代中都很大),例如: 我虽然认为这将是一个如何并行化的常见问题,但在Google上搜索了数小时后,我使用“多重处理”模块找到了解决方案,如下所示: 当循环较小时,此方法有效。但是,如果循环很大,这确实很慢,或者如果循环太大,有时会发生内存错误。看来python会首先生成参数列表