背景:

今天刷面试题的时候,遇到一个问题——如何判断一段字符串里面出现最多的字符以及出现次数。

思路
  1. 利用javascript对象的属性特征,可以实现每个字符与出现次数的绑定
  2. 通过遍历和累加,计算得出每个字符出现的次数
  3. 通过对比出现的次数,返回出现次数最多的字符
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    const str = 'asddfgdfwwqeweqwezczxcsdfgdgd';

    var obj = {};
    var max = 0;
    var maxStr = "";
    for(let i = 0; i < str.length ; i++){
    var word = str.charAt(i);
    if(obj[word] != null){
    obj[word]++;
    }else{
    obj[word] = 1
    }

    for(let i in obj){
    if(obj[i]>max){
    max = obj[i];
    maxStr = i
    }
    }


    }
    console.log('出现最多次:' + max +'的字符是:'+ maxStr)
    console.log(obj);
    // {a: 1, s: 2, d: 6, f: 3, g: 3, …}
    // a: 1
    // c: 2
    // d: 6
    // e: 3
    // f: 3
    // g: 3
    // q: 2
    // s: 2
    // w: 4
    // x: 1
    // z: 2
    // __proto__: Object

评论