思路
a
), 然后将后面的数组元素与它对比:a
的值, 并且记录下此时字符串数组的下标 (用来截取结束的重复字符串), 最后根据重复字符串的长度判断是否更新maxStr
的值.maxStrl
) 进行存储. 最后根据备用字符串的长度是否为0来判断有没有出现上述情况:maxStr
和maxStrl
的内容maxStr
就可以或者可以使用直接一起输出两部分的内容, maxStrl
内容为空也没什么影响.
<script>
maxr("mmmiijjjjkkkkkkssptr");
function maxr(char){
var arr = char.split("");
var maxCount=0;
var maxStr = "";
var maxStrl = ""; //如果有两个同样长的字符串, 作为备用, 存放另一个
var a; //a用来表示当前的字母
a = arr[0]; //初始化
//截取字符串
var end;
for(var i=0;i<arr.length;i++){
if(arr[i] == a){
maxCount += 1;
}
else {
end = i;
// console.log(maxCount);
var maxStr1 = char.slice(end-maxCount,end);
// console.log(maxStr);
//判断是否是最大的
if(maxStr1.length > maxStr.length){
maxStr = maxStr1;
}
//如果有两个等长的部分
else if (maxStr1.length == maxStr.length){
maxStrl = maxStr1;
}
a = arr[i];
maxCount = 1;
}
}
//判断结果输出
if(maxStrl.length == 0){
console.log(maxStr);
}
else{
console.log(maxStr);
console.log(maxStrl);
}
}
</script>
输出:
kkkkkk
JavaScript - 编写一个函数返回字符串中最长的连续重复字母
原文:https://www.cnblogs.com/charonmomo/p/15155757.html