最近练习一些简单的算法题,知道自己很不聪明,但却没想到用了这么久,划算不划算是个需要考虑的问题,

其中有个算法是:统计一个字符串出现最多的字母,网上很多自己的见解,但是才疏学浅,有些地方看的有点困难,放在这个地方供参考吧!

<script>
var str = "zhaochucichuzuiduodezifu";
var arr = [];//定义一个新数组
//循环遍历字符串
for (var i = 0, length = str.length; i < length; i++) {
var index = -1;
var j = 0;
//找每一个字符
do {
index = str.indexOf(str[i], index + 1);?????
if (index != -1) {
j++;
}
}while (index != -1);
arr[j] = str[i]; //把字符串str中的字符赋给数组arr索引为j的数据,当多次循环后,会出现重复赋值的现象,
                    //后赋值的会把之前的赋值覆盖掉,但不影响我们找出字符出现最多的那个
}
console.log(arr);
console.log("最多的字符是" + arr[arr.length - 1]);
console.log("次数是" + (arr.length - 1));
</script>

但是不能放弃,自己冷静下来想了想,JS查找字符串中出现次数最多的字符,可以利用所熟悉的下手,

split(''),用字符串里面的已知字符切割自己的字符串,然后求得切割完的长度-1=对应字符的出现次数,

但是发现,开始遍历字符串的每一个字符,求得的值会重复。于是有考虑过,先去除重复,

利用保留下来的字符遍历,后进行操作,也可以求得值;

关键:indexOf  push  split  的使用

<!--求字符串中出现次数最多的字符次数-->
<script>
var arr = [];
function txt(str) {
var j = 0;
for(var i = 0; i < str.length; i++) {
if(arr.indexOf(str[i]) == -1) {
arr.push(str[i]);
}
}
for(var j = 0; j < arr.length; j++) {
var s = arr[j];
var dd = str.split(s).length - 1;
console.log("字母" + s + "出现了" + dd + "次");
} }
var str = "abacdeesa";
txt(str);
</script>

最新文章

  1. css3使用技巧:细线边框的3种不同的写法
  2. 不在折腾----zookeeper-3.4.5
  3. PLSQLDeveloper 提示不能初始化?
  4. 移动端IM开发需要面对的技术问题
  5. MyEclipse 2015 CI 14发布(附下载)
  6. SQL server的存储过程
  7. Session机制详解
  8. mysql主从配置(转载)
  9. SCO连接SCOM报警
  10. 字符集详解 ------------------------ UNICODE +UTF8
  11. (转)jQuery验证控件jquery.validate.js使用说明+中文API
  12. 当try和finally里都有return时,会忽略try的return,而使用finally的return
  13. 使用$.post和action或servlet交互 URL出现 http://localhost:8080/../[object%20Object] 错误的问题解决
  14. Android完全退出activity
  15. python网络爬虫之LXML与HTMLParser
  16. android 通过getDimension,getDimensionPixelOffset和getDimensionPixelSize获取dimens.xml文件里面的变量值
  17. BZOJ 2084: [Poi2010]Antisymmetry [Manacher]
  18. JavaScripy execCommand函数
  19. Vi 操作命令
  20. vuex教程,vuex使用介绍案例

热门文章

  1. 百万级数据库SQL优化大总结
  2. Spark远程调试函数
  3. IDEA中git的配置与使用
  4. 【转载】#346 - Polymorphism
  5. MySQL 开机自启动
  6. 火车进出站(POJ1363)
  7. Buffer实例
  8. Ubuntu ndk环境变量配置
  9. Meshlab
  10. 第37章 基于SD卡的FatFs文件系统—零死角玩转STM32-F429系列