Lilah的字符串s
由小写英文字母组成,她重复了无数次。
给出一个整数n
,查找并打印Lilah无限字符串的前'a'
个字母中的字母n
的数量。
这是我的解决方案,但这是不正确的,我正在努力找出原因:
function repeatedString(s, n) {
let counter = 0;
const remainder = n % s.length;
const substring = s.substring(0, remainder);
const concatString = s + substring;
for (let letter of concatString) {
if (letter === 'a') {
counter++;
}
}
return (counter * n);
}
const str = "dhfgjhdfoiahwiuerhiguhzlkjvxzlkjghatriaeriaauih";
console.log(
repeatedString(str, 20)
);
答案 0 :(得分:0)
我认为可能是
const concatString = s +子字符串;
请您直接引用子字符串...
for (let letter of substring) {
if (letter === 'a') {
counter++;
}
}
return counter
答案 1 :(得分:0)
您只需要遍历s.substring(0, n)
并返回counter
值,(counter * n)
就没有任何意义。
function repeatedString(s, n) {
let counter = 0;
//const remainder = n % s.length;
const substring = s.substring(0, n);
console.log(substring);
//const concatString = s + substring;
for (let letter of substring) {
if (letter === 'a') {
counter++;
}
}
return counter;
}
const str = "dhfgjhdfoiahwiuerhiguhzlkjvxzlkjghatriaeriaauih";
console.log(
repeatedString(str, 20)
);
答案 2 :(得分:0)
您可以按照以下步骤进行操作:
c1
。slice()
获取子字符串的一部分。该部分将从0
开始,到字符串n
和length
的其余部分为止。(c2
c1
乘以给定字符串在长度为n
的字符串中的次数。即c1 * Math.floor(n/str.length)
c2
的其他计数添加到结果中并返回您可以使用filter()
进行操作,并检查给定字符串中给定字母的计数。然后将其乘以无次数,字符串将重复长度n
。
function func(str,l,n){
let c1 = [...str].filter(x => x === l).length;
let c2 = [...str.slice(0,n%str.length)].filter(x => x === l).length;
return (c1 * Math.floor(n/str.length)) + c2;
}
console.log(func('abcac','a',10))
答案 3 :(得分:0)
使用下一个链接作为问题的来源:
https://medium.com/@yashka.troy/want-to-know-the-major-player-in-programming-18f2d35d91f7
哪里有更好的解释?
Lilah的字符串
s
由小写英文字母组成,她重复了无数次。给出一个整数
n
,查找并打印Lilah无限字符串的前几个字母中的字母a's
的数量。例如,如果字符串
s=’abcac’
和n=10
,则我们考虑的子字符串为‘abcacabcac’
,即其无限字符串的前10
个字符。子字符串中有4
个事件a
。
解决方案可能是:
function repeatedString(s, n)
{
let res = 0;
const remainder = s.slice(0, n % s.length);
// Get number of times 'a' is present on "n / s.length" repetitions.
for (let letter of s)
{
if (letter === 'a') res++;
}
res *= Math.floor(n / s.length);
// Add the number of times 'a' is present on the remainder.
for (let letter of remainder)
{
if (letter === 'a') res++;
}
return res;
}
const str = "abca";
console.log(`${repeatedString(str, 10)} a's on first 10 letters:`);
console.log(`${repeatedString(str, 4)} a's on first 4 letters:`);
console.log(`${repeatedString(str, 0)} a's on first 0 letters:`);
console.log(`${repeatedString(str, 22)} a's on first 22 letters:`);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
答案 4 :(得分:0)
这应该为您提供次的次数 a 出现在 n 长度的数字中
const input = s;
var subStr = input.substr(0,n).split('');
console.log(subStr);
var output = 0;
subStr.forEach((e) => {
if (e === 'a') {
console.log(e);
output++;
}
})
console.log(output);