実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 48
問題概要
英小文字からなる文字列 が与えられる。 に最も多く出現する文字を出力せよ。ただし、そのような文字が複数ある場合は、アルファベット順で最も早いものを出力せよ。
制約
- の長さは1以上1000以下。
考察
文字の種類と個数を管理したいのでお馴染みのmap
を使っていく。
記録し終わったらvalue
が最大となるkey
を全探索して求めてしまえば終了。
コード
#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i, start, end) for (ll i = (start); i < (ll)(end); i++) // ======================================== // int main() { string S; cin >> S; map<char, int> mp; rep(i, 0, S.size()) mp[S[i]]++; int max = 0; char ans; for (auto &&m : mp) { if (m.second > max) { max = m.second; ans = m.first; } } cout << ans << endl; }
実装時間: 5分以内