无限重复字符串-返回无限字符串N长度内特定字符的计数-JavaScript
试图解决这个问题: 莉拉有一个由小写英文字母组成的字符串,s,她无限重复了很多次 给定一个整数,n,查找并打印Lilah无限字符串前几个字母中字母a的数量无限重复字符串-返回无限字符串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=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;i log(repeatedString(“abcac”,10))
您可以使用while
循环重复原始字符串,直到长度匹配,然后使用匹配
计算a
的数量
函数repeatedString(s,n){
设i=0,l=s.长度;
而(s.length log(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;i log(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;i log(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尝试此操作。如果还有其他问题,请告诉我。