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