面試題:1.清空字符串前后的空格;2.找出出現最多的字符


今天收到朋友的求助。

兩道面試題:

1.請空字符串前后的空格。

實現思路:

  • 在原型String對象上擴展一個方法叫trim;
  • 里面的正則是查找除了空格以外的所有字符,這樣就起到去除空格了。
  • 接着調用就ok了。
String.prototype.trim=function(){
    return this.replace(/(^\s*)|(\s*$)/g,"");
}
var str=" test ";//你的字符串
alert("["+str.trim()+"]")

  2.找出出現最多次數的字符

  • 先來一個高級版的哈
  • 實現原理:利用while循環比較每次計算后的字符串長度
var str = "aaaabbbcccccddfgh";
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);
  • 來一個復雜的但是思路是較大眾的
  • 就是循環遍歷然后比較,分別求出字符和出現的次數
var str = "aaaabbbccccddfgh";
var obj = {};
for (var i = 0, l = str.length; i < l; i++) {
var key = str[i];
if (typeof obj[key] == 'undefined') {
obj[key] = 1;
} else {
obj[key]++;
}
}
var max = -1;
var max_key = "";
var key;
for (key in obj) {
if (max < obj[key]) {
max = obj[key];
max_key = key;
}
}
alert("字符:"+max+" 出現次數:"+max_key);

  

String.prototype.trim=function(){    return this.replace(/(^\s*)|(\s*$)/g,"");}var str=" test ";//你的字符串alert("["+str.trim()+"]")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM