• 面试题: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()+"]")

  • 相关阅读:
    leetcode & lintcode 题解
    部署 Flask 应用时,为什么会需要 gunicorn 或 uWSGI?
    ubuntu vim python配置
    深度学习Momentum(动量方法)
    spark shuffle原理
    c++多态特性总结
    FM/FFM原理
    hadoop streaming怎么设置key
    归一化的优点和方法
    九章算法强化
  • 原文地址:https://www.cnblogs.com/webSong/p/6429088.html
Copyright © 2020-2023  润新知