我是 JavaScript 新手,我正在尝试查找行中相同字母的最大值。我的字符串中有很多字母,但我不知道下一步该怎么做。
非常感谢您的帮助。
这是我的代码:
let myString = "aaaAAAwwwwkkaaaaalllkk"
function countLetters(myString){
let lowcase = myString.toLowerCase();
let tempArr = lowcase.split('');
let letters = [];
let count = 1;
for(i = 0 ; i < tempArr.length; i++){
if(tempArr[i] === tempArr[i+1]){
count++;
}
else{
let value = `${count},${tempArr[i]}`;
letters = [...letters, value];
count = 1;
}
}
return letters
}
console.log(countLetters(myString))
最佳答案
您可以使用正则表达式来识别具有重复字符的 block :
function countLetters(myString) {
return myString.toLowerCase()
.match(/(.)\1*/gs)
.reduce((acc, s) => s.length > acc.length ? s : acc, "");
}
let myString = "xxaaaAAAwwwwkkaaaaalllkk"
console.log(countLetters(myString))
这将返回由相同(不区分大小写)字符组成的(小写)最长子字符串。
关于javascript - 如何找到字符串中最长的匹配字母序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66323475/