查找字符串中连续重复出现次数最多的字符,并返回该子串

比如输入字符串'abcaabcaaaaqwe',输出'aaaa',自己写的代码如下,整体思想就是把字符串转换为数组,对每一个数组元素求取连续出现的次数,保存在temp数组中。虽然可行,但是感觉很蹩脚,求一种更优的写法。

function search(str) {

    let val,index,length,temp,arr;

    length=str.length;

    temp=new Array(length);

    temp.fill(0);

    arr=Array.from(str);

    for(let i=0;i<length-1;i++){

        let n=1,j=i+1;

        while(j<=length){

            if(arr[j]===arr[i]){

                n++;

            }else{

                break;

            }

            j++;

        }

        temp[i]=n;

    }

    val=Math.max(...temp);

    index=temp.indexOf(val);

    return str[index].repeat(val)

}


阿波罗的战车
浏览 2387回答 1
1回答

饮歌长啸

function search(str) {&nbsp; &nbsp; return str.match(/(\w)\1+/g).sort((x, y) => y.length - x.length)[0];}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript