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;
}
上一篇:程序员面试金典 面试题 01.03. URL化


下一篇:QT -- QString类型转换为const char*(toLatin1)