重复字符统计算法。
算法一 :(最优)
var str = 'gegewge4gegewgegeg';
var obj = {},isAdd=true;
var list = str.split("");
var newList = [];
for (var i = 0; i < list.length; i++) {
isAdd = true;
obj.value = list[i];
obj.conent = 1;
for (var j = 0; j < newList.length; j++) {
if (newList[j].value === obj.value) {
isAdd = false;
newList[j].conent += 1
}
}
if (isAdd) newList.push(obj)
}
缺点: 两个for循环代码不够简洁; 注意:不要indexof去做, indexof每次都对重头到尾遍历一次,时间复杂度比这个更高。
算法二 (时间复杂度最低)
Object {}
var str = 'gegewge4gegewgegeg';
var obj = {};
var list = str.split("");
for (var i = 0; i < list.length; i++) {
if(obj[list[i]]){ obj[list[i]]+=1 }else{ obj[list[i]]=1}
}
缺点 :obj占用内存越来越大(当str长度不可控的时候);

浙公网安备 33010602011771号