当前位置: 首页 > Web前端 > JavaScript

JavaScript获取字符串中出现频率最高的字符

时间:2023-03-26 22:11:26 JavaScript

需求:使用js获取字符串中出现频率最高的字符aaaabcc4aa4ddcfceeeeeeeeggg方法一:使用指针思想(即索引)在JavaScript中,指针思想就是索引主意。思路:先定义两个索引i和j,i指向第一个字符,j指向i后面的字符i不动,j向后移动,然后比较i和j指向的字符,相等则忽略,说明i和j之间的字符是连续的。如果不相等,说明i指向的字符的连续性即将被打破。这时候需要记录这个字符和这个字符出现的次数,等待i和j,j继续向后移动。图片说明:代码:varstr='aaaabcc4aa4ddcfceeeeeeeegg';functiongetStrMaxCount1(str){varresultStr='';var结果计数=0;变种我=0;变量j=0;while(i结果计数){结果计数=计数;结果Str=strStart;}我=j;}}return{count:resultCount,str:resultStr};}//{count:7,str:'e'}控制台.log(getStrMaxCount1(str));方法二:用一个数组来存放每个循环的字符。思路:定义一个数组,循环遍历字符串,判断当前循环中的字符是否等于数组中的最后一项。如果相等,则表示该字符与数组中前面的字符连续,如果连续,则将字符存入数组。如果不相等,则说明数组中字符的连续性被打破。这时候就需要记录数组中的字符和字符出现的次数。然后清空数组,执行下一轮循环代码:varstr='aaaabcc4aa4ddcfceeeeeeeeggg';函数getStrMaxCount2(str){vartempArr=[];varresultStr='';var结果计数=0;变种我=0;while(i结果计数){结果计数=计数;结果Str=charInArr;}}}else{//如果char不等于临时数组中的最后一项,则后面数组中的字符不再连续letcharInArr=tempArr[0];让count=tempArr.length;console.log(`字符:${charInArr}出现:${count}次!`);如果(计数>resultCount){resultCount=计数;结果Str=charInArr;}//清空数组tempArr.length=0;tempArr.push(字符);我++;}return{count:resultCount,str:resultStr};}//{count:7,str:'e'}console.log(getStrMaxCount2(str));