搜索出字符串中出现次数最多的字符,并统计次数
2011-03-24 19:56
513 查看
今天看到一道题,搜索出字符串中出现次数最多的字符,并统计其次数,就自己动手写一下,是用递归来实现的,原理是这样的:每一次都取出字符串STR的第一个字符FS,统计出其在字符串STR中出现的次数N,然后把字符串STR中的FS删除,一直到字符串STR的长度小于N。
上面的代码还一个问题,就是如果出现最多的字符不是一个,而是有几个时,只能查找出第一个出现的字符,下面的代码是经过修改后的,会找出所有出现次数最高的字符
viewsourceprint?
1varstr="aaaa13123aass123123121sssssddd123d1231231dddd"; 2varfs="";//保存出现次数最多的字符 3varn=0;//保存次数 4functionfineStr(s,n,fs){ 5varf=s.match(/^./)[0];//取出串的第一个字符 6varrf=newRegExp(f,"g");//生成以第一个字符为内容的正则表达式 7varnn=s.match(rf).length;//利用match方法统计出出现的次数 8if(nn>n){fs=f;n=nn}//如果大于当前次数,则更新字符和次数 9s=s.replace(rf,"");//清除串中所有当前字符 10if(s.length<n){return[n,fs];}//退出条件 11returnfineStr(s,n,fs);//递归 12} 13 14varar=fineStr(str,n,fs); 15alert(ar);
上面的代码还一个问题,就是如果出现最多的字符不是一个,而是有几个时,只能查找出第一个出现的字符,下面的代码是经过修改后的,会找出所有出现次数最高的字符
01 | function fineStr(s,n,fs){ |
02 | var f=s.match(/^./)[0]; |
03 | var rf= new RegExp(f, "g" ); |
04 | var nn=s.match(rf).length; |
05 | if (nn==n)fs.push(f); |
06 | if (nn>n){fs=[];fs.push(f);n=nn} |
07 | s=s.replace(rf, "" ); |
08 | if (s.length<n){ return [ "出现次数最多的字符是:" +fs.join( "," ), "总次数为:" +n];} |
09 | return fineStr(s,n,fs); |
10 | } |
11 |
12 | var str= "23234kjafh328akdjfh9238442" ; |
13 | alert(fineStr(str,0,[])); |
相关文章推荐
- 一个笔试面试经常问的问题——统计字符串中出现最多的字符及次数
- javascript判断一个字符串中出现次数最多的字符,统计这个次数
- 判断一个字符串中出现次数最多的字符,并统计这个次数
- 判断一个字符串中出现次数最多的字符,统计这个次数
- 前端试题-js判断字符串中出现次数最多的字符及统计次数
- 统计一个字符串中出现次数最多的字符
- 判断一个字符串中出现次数最多的字符,统计这个次数
- 一个字符串中出现次数最多的字符 统计这个次数【实现代码】
- 判断一个字符串中出现次数最多的字符,统计这个次数
- 判断一个字符串中出现次数最多的字符,并统计这个次数
- 判断一个字符串中出现次数最多的字符,统计这个次数
- js——统计字符串中每种字符出现的次数,出现次数最多的是? 出现?次
- js分享:请写一个字符串,统计出出现次数最多的字符
- 判断一个字符串中出现次数最多的字符,统计这个次数
- 一个字符串中出现次数最多的字符 统计这个次数【实现代码】
- 输入字符串,统计字符串中出现频率次数最多的字符,并统计次数,以及每个字符字符出现的次数
- 统计字符串中出现次数最多的字符
- java统计字符串中每个字符出现的次数并查询出现次数最多的字符和次数
- 判断一个字符串中出现次数最多的字符,统计这个次数
- 统计一个字符串中出现次数最多的字符(HashMap)