HTML5学堂-码匠 HTML5学堂

您当前位于:HTML5面试题 ——> WEB前端面试真题 - 如何查找字符串中出现最多的字符

WEB前端面试真题 - 如何查找字符串中出现最多的字符

2015/07/14 21:23:44 | 作者:HTML5学堂(码匠) | 分类:HTML5面试题 | 关键词:前端,面试题,查找字符串,最多字符

查找字符串中出现最多的字符

HTML5学堂:正则、数组、字符串,是JavaScript语言中让人头痛的一些知识,今天这篇文章我们使用数组字符串的方法,来实现从一个字符串中,查找出现最多的字符。

查找字符串中出现最多的字符

将一个字符串中,出现次数最多的数字提取出来,最后输出出现最多的字符是什么,出现的次数是多少。

题目剖析

字符串方法的解题思路:从最初开始进行字符的截取,获取到第一个字符之后,根据这个字符进行字符串的拆分,此时,拆分后的数组中就没有这个字符了。再将数组组合成字符串之后,原来的长度与当前字符串的长度做差值,就能够获取到当前字符出现了几次。之后运用新的字符串,循环进行操作。需要注意的地方就是,对于出现次数相同的字符,也需要考虑。

相关知识点的使用:字符串、数组方面,需要使用到charAt、split、join、push方法;正则方面,需要使用到子项。

欢迎沟通交流~HTML5学堂

字符串方法 - 查找字符串中出现最多的字符

  1. /*
  2. * HTML5 数组字符串正则表达式
  3. * HTML5学堂 http://www.h5course.com
  4. * 独行冰海 梦幻雪冰
  5. */
  6. function getMost(str){
  7.     var maxNum = 0;
  8.     var maxChar = [];    //存放出现字数最多的字符数组,因为出现最多的字符可能有多个
  9.     while(str){
  10.         var char = str.charAt(0);
  11.         var arr = str.split(char);
  12.         n = str.length - arr.join('').length;
  13.         str = arr.join('');
  14.         if(n > maxNum){
  15.             maxNum = n;
  16.             maxChar = [char];    // 放置数组元素
  17.         }else if( n === maxNum){
  18.             maxChar.push(char);    //出现次数相同的字符 存入数组里
  19.         }
  20.     }
  21.     return {'maxNum':maxNum, 'maxChar':maxChar}
  22. }
  23. var res = getMost('dsfshkgfareasfd');
  24. console.log('出现次数最多的字符:'+ res.maxChar + ',出现次数:' + res.maxNum);

正则方法 - 查找字符串中出现最多的字符

  1. /*
  2. * HTML5 数组字符串正则表达式
  3. * HTML5学堂 http://www.h5course.com
  4. * 独行冰海 梦幻雪冰
  5. */
  6. var str = 'dsfshkgfareasfd';
  7. var arr = str.split('');
  8. arr = arr.sort();
  9. str = arr.join('');
  10.  
  11. // 先进行排序处理,然后重新组装成字符串
  12. var reg = /(\w)\1+/g;
  13. var num = 0;
  14. var value = null;
  15. str.replace(reg, function($0, $1){
  16.     if (num < $0.length) {
  17.         num = $0.length;
  18.         value = $1;
  19.     };
  20. });
  21. console.log(value+'出现次数'+num);

欢迎沟通交流~HTML5学堂

微信公众号,HTML5学堂,码匠,原创文章,WEB前端,技术分享

HTML5学堂

原创前端技术分享

HTML5学堂,HTML5,WEB,前端,视频课程,技术视频,学习视频,面试,JS

原创视频课程

用心打造精品课程

微信小程序,决胜前端,面试题,面试题集合,前端,HTML5,真题

小程序-决胜前端

前端面试题宝库

原创书籍,学习书籍,书籍推荐,HTML5布局之路,HTML5,WEB前端

HTML5布局之路

非传统模式讲解前端