每日算法2:翻转字符串,字符串中重复次数最多的字符

  • Post category:JavaScript

题目描述:判断字符串中重复次数最多的字符

// 解决思路:
// 1.判断字符重复的方法
// 创建空数组,利用键值对形式对每个字符进行计数
// 用到 采用for循环结合if判断 对象[键] 是否有值,无则undefined
// arr.charAt(i)取得arr中i索引号下的元素
// 2.对重复的字符进行计数
// 若对象中无某字符,则赋值1;有则加1
// 3.找字符计数最大的一个
// 采用 for属性in obj 对 对象的值 进行大小比较
点击查看代码
function mostLetter(str){
    var obj = {};
    
    for(var i =1;i<=str.length;i++){
        if(!obj[str.charAt(i)]){
            obj[str.charAt(i)] = 1
        }else{
              obj[str.charAt(i)]++;
        }
     } 
      var maxLetter = '';
      var iMost = 0;
      for(var i in obj){
        if(obj[i]>iMost){
            iMost = obj[i];
            maxLetter = i;
        }
      }
    
    return '最多的字符是' + maxLetter + '次数为' + iMost;

}
var str ='dhhshhsajjaajiiiiiii'
console.log(mostLetter(str))

题目要求: 字符串反转 ‘12345’,‘54321’

// 解题思路1:将字符串转化为数组,使用reverse(),再通过join()拼接起来
// 解题思路2:准备一个空的数组用来盛放翻转的字符,最后join拼接数组

点击查看代码
<body>
  题目要求: 字符串反转 ‘12345’,‘54321’ 
    <div id="demo"></div>
    <div id="demo1"></div>
    <script>
        // 解题思路1:将字符串转化为数组,使用reverse(),再通过join()拼接起来
        function reverseStr1(str){
            return str.split('').reverse().join('')
        }
        // 解题思路2:准备一个空的数组用来盛放翻转的字符,最后join拼接数组
        function reverseStr2(str){
            var arr = [];
            for(var i = 0;i<str.length;i++){
                arr[str.length-1-i] = str[i]
            }
            return arr.join('')
        }
        var str = 'abcdrfff'
        document.getElementById('demo').innerHTML = reverseStr1(str);
        document.getElementById('demo1').innerHTML = reverseStr2(str);

    </script>
</body>