js字符串比较出重复最多的字符和重复最多的次数

//算法题: 统计一个字符串出现最多的字母和出现的次数
var str = "yuiopoklghonmkloppsdfsahdsfhew",arr = [],diff = [],we = {};
for(let i = 0;i< str.length;i++){
	let mm = str.charAt(i);
	arr.push(mm);
}
//console.log(arr);//字符串改成数组
for(let j = 0;j < arr.length;j++){
	if(diff.indexOf(arr[j]) == -1){
		diff.push(arr[j]);
		we[arr[j]] = 1;
	}else{
		//console.log(j,arr[j]);
		we[arr[j]] += 1;
	}
}
//console.log(diff);
//console.log(we);
//遍历对象取出最大value的键值对以及对应的key
let mid = 0,ke = null;
for(var h in we){
	//console.log(we[h]);
	if(we[h] >= mid){
		mid = we[h];
		ke = h
	}else{
		mid = mid;
	}
	
}

console.log("最大的key:"+ke,"最大的次数为:" + mid);

注意:我这个里面没有考虑如果字符串中重复的字符一样多的好几个,最后输入只会输入最后一个的,比如:str = "uuoopp",显示没考虑全!

总结:花了一会,自己想着写的,不够优化,但是是自己的东西!说下我的解决思路,首先将字符串分割成了arr数组,然后将第一次重复的所有元素放进新数组diff,最后用对象we存放所有的重复元素以及对应的次数,然后遍历对象we,取出最大值以及最大值对应的key。

猜你喜欢

转载自blog.csdn.net/XU441520/article/details/108815211
今日推荐