/**
取出字符串中重复字数最多的字符
*/
var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa';      //创建字符串
var word,                          //单个字符
length;                          //该字符的长度
//定义输出对象
var max = {
wordName : '',                      //重复次数最多的字符
wordLength : 0                      //重复的次数
};
//递归方法,传入字符串
(function(words) {
if (!words) return; //如果字符串已经变空则返回,结束递归
word = words[0]; //取出字符串中的第一个字符
length = words.length; //将length设为当前字符串长度
words = words.replace(new RegExp(word, 'g'), ''); //返回将字符串剔除当前字符的剩余字符串
length = length - words.length; //重设length为当前字符在字符串中的长度
if (length > max.wordLength) //如果该字符重复次数大于maxLength,则重设maxLength为当前字符重复次数
max = { //重设对象的值
wordName : word,
wordLength : length
};
arguments.callee(words); //递归调用,传入剩余字符串
})(words);
console.log(max.wordName+"\n"+max.wordLength); //递归结束后输出结果

  

今天上午偶然看见这样的一个问题.看到网上大部分是用两个循环做出来的.然后自己用递归写了一下

思路是

  每递归一次.取出第一个字符.从字符串中剔除相同符号的字符,并拿之前的字符串长度减去剔除后的字符串长度.

  得到的是该字符串中当前字符所重复次数.

  判断该字符重复次数是否大于当前输出对象中存储的maxLength.

  如true,则更新

  然后进入下次递归,直到字符串被替换完,终止

  输出对象中存储的就是次数最多的字符以及重复的次数

最新文章

  1. java实现敏感词过滤(DFA算法)
  2. Spring 通知(Advice)和顾问(Advisor)
  3. Java基础知识
  4. MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transaction.
  5. 02_Jquery_04_属性选择器
  6. 前台任意页面调用自定义字段选项 box 单选 多选方法及查询
  7. 在iOS上present一个半透明的viewController
  8. input输入框只能输入数字的功能
  9. asp.net MVC Session锁的问题
  10. 小结IE6的坑
  11. JavaScript 学习笔记 - LocalStorage
  12. Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置
  13. 自动滚动的TextView
  14. Array库
  15. 高级Java面试总结2
  16. 解决关于ios访问相机闪退问题
  17. 复杂的web---web中B/S网络架构
  18. Learning-MySQL【6】:视图、触发器、存储过程、函数、流程控制
  19. selenium之封装登陆操作
  20. 使用RetionalRose根据现有的java工程逆向生成类图

热门文章

  1. python 集合set
  2. js两种定义函数、继承方式及区别
  3. .net和java和谐相处之安卓客户端+.net asp.net mvc webapi 2
  4. Codeforces Round #195 A B C 三题合集 (Div. 2)
  5. 读书笔记_Effective_C++_条款四十五:运用成员函数模板接受所有兼容类型
  6. spring框架面试相关问题
  7. 用Python开始机器学习(7:逻辑回归分类) --好!!
  8. 轻应用、Web app 、Native app三者区别关系是什么?
  9. 2014 网选 5012 Dice(bfs模板)
  10. 显示SQL Server分配的全部内存