【发布时间】:2021-02-16 09:04:51
【问题描述】:
我遇到了这个挑战,您必须计算提供的字符串中有多少重复项。
我想出了这段代码,如果有重复的字符串拼接它们并将它们计为+1,那么它应该对字符串进行排序。如果这封信不是重复的 -> 只需将它们拼接起来,我就可以继续前进。
代码是怎么回事?我不想要挑战的答案,而是要了解我哪里出错了。为什么只有4个以上同一个字母的代码才注册重复?
这里是代码,注意我只是使用var e来查看数组的哪一部分被拼接了。
预期输出:
[[p, p], [a, a, a, a], [c, c, c, c, c, c, c, c], [d, d, d, d], [g, g, g], [e, e]]
如果同一字符切片出现 2 次以上,则该重复块将被取出并将它们放入一个新数组中。
function duplicateCount(text) {
const str = Array.from(text.toLowerCase()).sort();
var h = 0;
var e = [];
for (let i = 0; i < str.length; i++) {
if (str.lastIndexOf(str[i]) > 2) {
h++;
e.push(str.splice(0, str.lastIndexOf(str[i]) + 1));
i = 0;
} else {
str.splice(0, 1);
i = 0
}
}
return e
}
console.log(duplicateCount('ppaaaaccccccccgggiyddddhee'));
【问题讨论】:
-
你说它必须大于 2
标签: javascript count duplicates