この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
145. 最も頻繁に出現する文字

以下のようなJavaScriptのコードで、指定された問題を解くことができます。

function count(s) {
  let map = new Map();
  
  for (let i = 0; i < s.length; i++) {
    let c = s.charAt(i);
    map.set(c, map.has(c) ? map.get(c)+1 : 1);
  }
  
  let maxCount = 0;
  let result = [];
  for (let [char, count] of map.entries()) {
    if (count > maxCount) {
      maxCount = count;
      result = [char];
    } else if (count === maxCount) {
      result.push(char);
    }
  }
  
  return result.length === 1 ? result[0] : result;
}

この解法では、

  • 一回目のループで、文字列中の各文字の出現数をハッシュマップ(Map)に格納します。
  • 二回目のループで、ハッシュマップを走査し、最大の出現頻度を持つ文字を見つけます。
  • このとき、最大頻度と同じ数の出現頻度を持つ文字が複数あれば、配列に追加されます。
  • 配列内の文字の数が1なら、値を解答として返します。

この解法では、時間複雑度はO(n)(nは文字列の長さ)であり、空間複雑度はO(k)(kはユニークな文字の数)となります。