Official

B - mpp Editorial by harurun4635


問題文の通りに実装をすればよいです。実装方針は様々ありますが、以下で紹介する実装は

  • 頻度列(各文字が \(S\) に何回出現するかを管理する列)をつくる
  • 頻度列の最大値(= 出現回数の最大値)を求める
  • 最大値をとらない文字を順番に連結する

といった手順で答えを求めています。

Python の実装例

s = input()
cnt = {c : s.count(c) for c in s}
ma = max(cnt.values())
print("".join(c for c in s if cnt[c] != ma))

C++ の実装列

#include <bits/stdc++.h>
using namespace std;

int main(){
    string s; cin >> s;
    vector<int> cnt(26, 0);
    for (char c : s) cnt[c-'a']++;
    int ma = *max_element(cnt.begin(), cnt.end());
    string t = "";
    for (char c : s){
        if (cnt[c-'a'] != ma) t += c;
    }
    cout << t << endl;
}

posted:
last update: