Codeforces Round #479 (Div. 3) ---- B.Two-gram

这里写图片描述

题意: 找一个出现次数最多的长度为2的子串

AC代码:

#include<bits/stdc++.h>
using namespace std;
#define rep(i,s,e)      for(int i=s;i<=e;i++)
#define rev(i,s,e)      for(int i=e;i>=s;i--)
#define all(x)          x.begin(),x.end()
#define sz(x)           x.size()
#define szz(x)          int(x.size()-1)
const int INF = 0x3f3f3f3f;
const int MOD = 1e9+7;
const int MAXN = 1e5;
map<string,int> m;
map<string,int> ::iterator it;
map<string,int> ::iterator res;
int main()
{
    #ifdef LOCAL
    freopen("in.txt","r",stdin);
    #endif // LOCAL
    ios_base::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int n,mmax = -1;
    string str;
    cin>>n;
    cin>>str;
    string ans;
    int l = str.length();
    for(int i=0;i<=l-2;i++) m[str.substr(i,2)]++;
    for(it = m.begin();it!=m.end();it++)
    {
        if(it->second>mmax)
        {
            mmax = it->second;
            res = it;
        }
    }
    cout<<res->first<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_37624640/article/details/80302584