题解:B4200 [常州市程序设计小能手 2020] 重点单词

· · 题解

Solution

s_{i-1} = s_i(存在 s_{i-1}),计入压缩单词中,一开始压缩单词只有第一个字母。

再用 map 对所有压缩单词统计次数,并求出答案。

Code

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 5;
int n, l;
string s, ss[N], ans = "                ";
map<string, int> mp;
int main(){
    ios::sync_with_stdio(false);
    cin.tie();
    cin >> n;
    for(int i = 1; i <= n; i++){
        ss[i] = "";
        cin >> s;
        l = s.length();
        ss[i] += s[0];
        for(int j = 1; j < l; j++) if(s[j - 1] != s[j]) ss[i] += s[j];
        mp[ss[i]]++;
    }
    for(int i = 1; i <= n; i++) if(mp[ss[i]] > mp[ans]) ans = ss[i];
    cout << ans;
    return 0;
}