不知道是什么时候的事了反正看到了粘一下算了。
思路
首先我们注意到只要 \(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;
}