字符串中出现最多的字符

2017-01-01 10:46
  • js
    var str = "aaaabbbbcccddaaeeessseee1114444";
    var o = {};
    for (var i = 0, length = str.length; i < length; i++) {
//        var char = str[i];
        var char = str.charAt(i); //返回某个指定位置的字符
        if (o[char]) {  //char就是对象o的一个属性,o[char]是属性值,o[char]控制出现的次数
            o[char] = o[char]+1 ;  //次数加1
        } else {
            o[char] = 1;    //若第一次出现,次数记为1
        }
    }
    console.log(o);   //输出的是完整的对象,记录着每一个字符及其出现的次数

    //遍历对象,找到出现次数最多的字符和次数
    var max = 0;
    var maxChar = null;
    for (var key in o) {
        if (max < o[key]) {
            max = o[key];   //max始终储存次数最大的那个
            maxChar = key;  //那么对应的字符就是当前的key
        }
    }
    console.log("最多的字符是" + maxChar);
    console.log("出现的次数是" + max);
  • python
str1 = "aaaabbbbcccddd"
o = {}
max = 0
maxChar = ""
str_arr = list(str1)
for i in str_arr:
    if o.get(i, "false") != "false":
        o[i] = o[i] + 1
    else:
        o[i] = 1
print(o)
for key in o:
    if max < o[key]:
        max = o[key]
        maxChar = key

print("出现次数最多的是%s" %max)
print("出现次数最多的字符是%s" %maxChar)