JS-取出字符串中重复次数最多的字符并输出
2024-10-19 11:43:55
/**
取出字符串中重复字数最多的字符
*/
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,则更新
然后进入下次递归,直到字符串被替换完,终止
输出对象中存储的就是次数最多的字符以及重复的次数
最新文章
- java实现敏感词过滤(DFA算法)
- Spring 通知(Advice)和顾问(Advisor)
- Java基础知识
- MS SQL 错误:The operation could not be performed because OLE DB provider ";SQLNCLI10"; for linked server ";test"; was unable to begin a distributed transaction.
- 02_Jquery_04_属性选择器
- 前台任意页面调用自定义字段选项 box 单选 多选方法及查询
- 在iOS上present一个半透明的viewController
- input输入框只能输入数字的功能
- asp.net MVC Session锁的问题
- 小结IE6的坑
- JavaScript 学习笔记 - LocalStorage
- Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置
- 自动滚动的TextView
- Array库
- 高级Java面试总结2
- 解决关于ios访问相机闪退问题
- 复杂的web---web中B/S网络架构
- Learning-MySQL【6】:视图、触发器、存储过程、函数、流程控制
- selenium之封装登陆操作
- 使用RetionalRose根据现有的java工程逆向生成类图
热门文章
- python 集合set
- js两种定义函数、继承方式及区别
- .net和java和谐相处之安卓客户端+.net asp.net mvc webapi 2
- Codeforces Round #195 A B C 三题合集 (Div. 2)
- 读书笔记_Effective_C++_条款四十五:运用成员函数模板接受所有兼容类型
- spring框架面试相关问题
- 用Python开始机器学习(7:逻辑回归分类) --好!!
- 轻应用、Web app 、Native app三者区别关系是什么?
- 2014 网选 5012 Dice(bfs模板)
- 显示SQL Server分配的全部内存