题解:CF2121B Above the Clouds
不知道是什么时候的事了反正看到了粘一下算了。
思路
首先我们注意到只要 \(b\) 是 \(a + c\) 的子串即可,不需要考虑长度,那么我们可以只考虑 \(b\) 的长度为 1 情况。
可以将每个字符出现的次数记录下来,如果这个字符出现次数大于 1,说明该字符可以作为符合条件的字符串 \(b\)。
直接将字母转化为数字统计即可。
代码
#include <bits/stdc++.h>
using namespace std;
int vis[27];
bool solve() {
memset(vis, 0, sizeof(vis));
int n, len;
string s;
cin >> n;
cin >> s;
len = s.size();
for (int i = 0; i < len; i++) vis[s[i] - 'a']++;
for (int i = 1; i < len - 1; i++)
if (vis[s[i] - 'a'] > 1) return true;
return false;
}
int main() {
int T;
cin >> T;
while (T--) {
if (solve()) cout << "Yes\n";
else cout << "No\n";
}
return 0;
}

浙公网安备 33010602011771号