题目:编写一个函数,接收一个字符串作为参数,返回该字符串中出现次数最多的字符及其出现次数。如果有多个字符出现次数相同,则返回其中ASCII码最小的字符。

示例输入:'hello world'

示例输出:{char: 'l', count: 3}

代码实现:

function findMaxChar(str) {
  let charMap = {};
  let maxChar = '';
  let maxCount = 0;
  
  for (let i = 0; i < str.length; i++) {
    let char = str.charAt(i);
    if (charMap[char]) {
      charMap[char]++;
    } else {
      charMap[char] = 1;
    }
    
    if (charMap[char] > maxCount) {
      maxChar = char;
      maxCount = charMap[char];
    } else if (charMap[char] === maxCount && char.charCodeAt(0) < maxChar.charCodeAt(0)) {
      maxChar = char;
    }
  }
  
  return { char: maxChar, count: maxCount };
}

解释:该函数首先创建一个对象charMap,用于记录每个字符出现的次数。然后遍历字符串,每遇到一个字符,就在charMap中对应的属性值加1。同时,如果该字符出现的次数大于maxCount,则更新maxChar和maxCount。最后返回一个包含最大出现次数字符和对应次数的对象。

出一道困难的js编程题给出答案

原文地址: https://www.cveoy.top/t/topic/5V5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录