无限重复字符串-返回无限字符串N长度内特定字符的计数-JavaScript

无限重复字符串-返回无限字符串N长度内特定字符的计数-JavaScript,javascript,arrays,string,Javascript,Arrays,String,试图解决这个问题: 莉拉有一个由小写英文字母组成的字符串,s,她无限重复了很多次 给定一个整数,n,查找并打印Lilah无限字符串前几个字母中字母a的数量 例如,如果字符串 S=ABCAC 和 n=10 < /强>,我们考虑的子串是 ABCACABCAC < /强>,其第一个>10 < /强>字符的无限字符串。子字符串中出现了4次“a” 我写道: 函数repeatedString(s,n){ s=s.重复(n); s=s.slice(0,n); 设array=array.from(s); 让计

试图解决这个问题:

莉拉有一个由小写英文字母组成的字符串,s,她无限重复了很多次

给定一个整数,n,查找并打印Lilah无限字符串前几个字母中字母a的数量

例如,如果字符串<强> S=ABCAC 和<强> n=10 < /强>,我们考虑的子串是<强> ABCACABCAC < /强>,其第一个<强>>10 < /强>字符的无限字符串。子字符串中出现了4次“a”

我写道:

函数repeatedString(s,n){
s=s.重复(n);
s=s.slice(0,n);
设array=array.from(s);
让计数=0;
for(设i=0;ilog(repeatedString(“abcac”,10))
您可以使用
while
循环重复原始字符串,直到长度匹配,然后使用
匹配
计算
a
的数量

函数repeatedString(s,n){
设i=0,l=s.长度;
而(s.lengthlog(repeatedString(“abcac”,10))我对此进行了测试,知道它是有效的。本质上,我并不是在创建一个新字符串,我只是想知道我必须乘以原始字符串多少次才能截断它。然后我将这个数字乘以原始字符串中有多少个a

函数repeatedString(s,n){
var charLength=s.length;
var repeat=数学楼层(n/字符长度);
var余数=n%(字符长度);
var strct=s.slice(0,余数);
让计数=0;
设arrayX=Array.from(s);
for(设i=0;ilog(repeatedString(“abcac”,10))实际上将字符串重复n次是对内存和运行时间的巨大浪费

只需计算整个字符串的重复频率,乘以字符串的
a
s个数加上
s.slice(0,n%s.length)部分
a
s个数即可

您的运行时将下降到
s.length
,而不是
n

函数repeatedString(s,n){
var r=n%s.长度,
m=(n-r)/s.长度,
计数=0;
对于(变量i=0;ilog(repeatedString(“abcac”,1234567890))我用
尝试了一个小的解决方案。重复
,但正如Thomas所说,它很昂贵,而且运行测试需要花费很长时间

函数repeatedString(s,n){
常数allAs=s.match(/a/g);
如果(!allAs){
返回0;
}
如果(s=='a'){
返回n;
}
const reps=s.repeat(Math.ceil(n/s.length)).slice(0,n).match(/a/g)
如果(!reps)返回0;
返回重复长度;
};
log(repeatedString('abc',10));

log(repeatedString('abcde',10))我编写了这段代码,效果很好

function repeatedString(s, n) {
    let modulus = n % s.length;
    let repetition = (n - modulus) / s.length;
    let remainCounts = s.slice(0, modulus).split("").filter((item) => item == "a").length
    
    return (s.split("").filter((item) => item == "a").length * repetition) + remainCounts
}

如果s包含3次“a”,并且s重复4次,长度为n,则答案为3*4。对于n=无穷大,这将是3*无穷大,这将导致无穷大。。。当然,你必须考虑S长度%N==0,但这并不太复杂。对于第二个代码段,我没有收到超时错误。其他人也是这样吗?@tuner会导致HackerRank出现超时错误,下面的所有答案也都是如此。@jonaswillms在编辑中为n添加了约束-
1问题是关于
n=Infinity
。尝试过之后,许多测试都失败了,运行这些测试需要很长时间。此外,超难阅读需要也适用于其他字符串,即
“aba”
,尽管我认为我们的思路正确-这里没有超时错误。@HappyHands31将其更改为适用于其他字符串。是的,我也尝试了这些更改,但不幸的是,超时错误:@HappyHands31尝试此操作。如果还有其他问题,请告诉我。