1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
function strmaxre(str){ console.time('end'); var arr = str.split(''),_str,num = 0,maxnum = 0,strname = [],hash = {},result; _str = arr.sort(); // console.log(_str.length) for(var i = 0 , l = _str.length;i<l;i++){ var val = _str[i],nextval = _str[i+1]; if(!hash[val]){ hash[val] = true; num = 1; }else{ num++; if(nextval !== val && maxnum < num){ //加了对下一个字符是否一样,也就是同一个字符的统计是否结束的判断,统计结束才对数量进行比较,避免相等时也会作比较。 strname = [val]; maxnum = num; // console.log('<<<<',val,num); }else if(maxnum === num){ strname.indexOf(val) === (-1) && strname.push(val); // console.log('===',val,num); } } } result = strname + '重复最多,共'+ maxnum+'次'; console.timeEnd('end'); return result; }
|
近期评论