我正在 Hackerrank 中完成以下挑战之一:
Lilah 有一串小写英文字母 s,她重复了无数次。
给定一个整数 n,找出并打印 Lilah 无限字符串的前 n 个字母中字母 a 的个数。第一行包含一个字符串 s。第二行包含一个整数 n。
我将需要打印一个整数,表示通过无限次重复 S 创建的无限字符串的前 N 个字母中字母 a 的数量。
例如:
s 是 ‘aba’, n = 10.. 无限字符串的前 n = 10 个字母是 ‘abaabaabaa…’ 因为有 7 个 a,我们将得到 7 作为最终答案
这是我的答案。它通过了前两个案例,但未通过其余案例。
function repeatedString(s, n) {
var repeat = Math.round(n / s.length);
var remainder = n % s.length;
var answer = 0;
for (var i = 0; i < s.length; i++) {
if (s.charAt(i) == 'a') {
answer += repeat;
if (i < remainder)
answer++;
}
}
return answer;
}
如果有人可以看看这个并提出更好的解决方案,那就太好了。
原文由 rory-h 发布,翻译遵循 CC BY-SA 4.0 许可协议