微信

使用微信服务,更方便

职友集>程序员面试题 > 易车网招聘程序员的一道面试题

易车网招聘程序员的一道面试题

2015-07-23 06:30:01 阅读( 128 )

2128人 收藏本页

标签:程序员面试题

“计算出字符串中出现次数最多的字符是什么,出现了多少次?”

看到这个需求,我想大多数人应该首先想到的是转换成数组,再做处理,当然是可以解决问题的,然后这里提供一个巧妙的算法设计,无需转数组,可以很快解决问题,代码如下:

[js]代码:

var str = "adadfdfseffserfefsefseeffffftsdg"; var maxLength = 0; var result = ""; while(str!=''){ oldStr = str; getStr = str.charAt(0); str = str.replace(new RegExp(getStr,"g"),""); if( oldStr.length-str.length > maxLength){ maxLength = oldStr.length-str.length; result = getStr + "=" + maxLength; } } alert(result);

很久之前的一个笔试题,但是不会做,只是写了个大概思路,好像是用到了正则表达式云云……今天忽然想起,然后做了一下,自己觉得还行的算法,挺简单易懂的,除了初始化的代码外代码还不到10行。

javascript代码:



var str="abaacabbabab";

var tempStr="";

var arr=Array;

arr=[0];

for (var i=0;i<str.length-1;i++){

tempStr=str.charAt(i);

if(str.split(tempStr).length>arr[0]){

arr[0]=str.split(tempStr).length-1;//储存该字符出现次数

arr[1]=tempStr;//储存该字符

}

}

alert(arr);

下一篇:32道java程序员面试题

上一篇:HR常见的面试题

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题