この解答例は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はユニークな文字の数)となります。