CF977B Two-gram 题解

Content

给定一个字符串 \(s\),请求出出现次数最多的长度为 \(2\) 的子串。

数据范围:\(2\leqslant |s|\leqslant 100\)

Solution

直接求出所有长度为 \(2\) 的子串,然后比较它们出现的次数即可。统计次数这一块可以用 \(\texttt{map}\) 直接映射来实现。

Code

int len, cnt, ans = 1;
string s, ss[107];
map<string, int> q;

int main() {
	getint(len);
	cin >> s;
	_for(i, 0, len - 2)
		ss[++cnt] += s[i], ss[cnt] += s[i + 1];
	_for(i, 1, cnt) {
		q[ss[i]]++;
		ans = max(ans, q[ss[i]]);
	}
	_for(i, 1, cnt)
		if(q[ss[i]] == ans) {cout << ss[i]; break;}
	return 0;
}
posted @ 2021-12-21 19:54  Eason_AC  阅读(58)  评论(0)    收藏  举报