找出字符串中字符出现次数最多的字符,并计算次数


在这么炎热的夏天,求职却成了一件我生活中很重要的‘工作’,在经历几次面试之后,心情一度低落。可是直到昨天面试下来,突然间发现自己的价值了,原来我也没那么笨。好了不说了,我写下我昨天的一道面试题:找出字符串中字符出现次数最多的字符,并计算次数?

(function( str ){
        var arr = str.split('');  // 先把字符串切割成数组,因为要遍历这个数组
        var newArr = [];  // 定义一个新的数组用来存放[{'letter':'a','count':1},{'letter':'s','count':4}....] 这样的对象
        for( var i=0;i<arr.length;i++ ){
            var isExist = false;  // 定义一个标记,判断循环的当前字母在不在newArr数组的对应的对象里
            for( var j =0; j < newArr.length;j++ ){    // 如果存在了就对应的count次数+1
                if( arr[i] == newArr[j]['letter']){
                    newArr[j]['count'] += 1;
                    isExsit = true;
                }
            }
            if(!isExist){
                var obj = {'letter':arr[i],'count':1};  // 如果newArr里不存在对应的对象,就new一个新的对象push进去
                newArr.push(obj);
            }
        }
        // 到这里,newArr就形成了想要的样子[{‘letter’:'a','count':1},{‘letter’:'s','count':4}....]
        // 现在就是要找出‘count’的最大值,再找到对应的字母‘letter’
        // 先假设是最大值是数组里的第一个
        var max = newArr[0]['count'],maxLetter;
        // 再对newArr进行循环
        for(var k = 0; k < newArr.length; k++ ){
            if( newArr[k]['count'] > max ){
                max = newArr[k]['count'];
                maxLetter = newArr[k]['letter'];
            }
        }
        console.log(max,maxLetter)   // 在控制台打印的是 6 ‘d’
    }('asdfgdfgdhdsdffsds'))

还好做出来了,这里的主要思路就是用对象和数组来存储遍历到的数据,就这样吧,也不多说了!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM