思路
先扫一遍,计算每个字母出现的数量,然后判断是否是交替出现。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int T, n;
cin >> T >> n;
while (T--) {
int t[105] = {0};
string s;
cin >> s;
for (int i = 0; i < n; i++) t[s[i] - 'a']++;//找出重和轻的字母
bool flag = true;//判断是否交替的变量
for (int i = 0; i < n - 1; i++) {//核心判断部分
if (t[s[i] - 'a'] == 1) {
if (t[s[i + 1] - 'a'] == 1) {
flag = false;
break;
}
} else {
if (t[s[i + 1] - 'a'] >= 2) {
flag = false;
break;
}
}
}
if (flag) {
cout << "T" << endl;
} else {
cout << "F" << endl;
}
}
return 0;
}
AC记录,求通过。
标签:Heavy,false,int,题解,++,flag,Light,S2 From: https://www.cnblogs.com/BadBadBad/p/18113122/P10296