本题思路
逐个按照题意判断即可:
- \(\texttt{SIMPLE}\):串的末尾为字符
A
。 - \(\texttt{FULLY-GROWN}\):串的末尾两个字符为
AB
。 - \(\texttt{MUTAGENIC}\):串的开头字符为
B
,末尾为字符A
。 - \(\texttt{MUTANT}\):上面三种都不符合。
说一下细节:
- 注意判断顺序,其实应该先判断
MUTAGENIC
的情况,因为SIMPLE
和MUTAGENIC
情况中末尾字符都为A
,有些字符串显然MUTAGENIC
更合适。 - 判断字符串大小,万一字符串长度为 \(1\),那判断字符串头和尾(或末尾两个字符)就可能会溢出(RE)。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int main() {
cin >> n;
for(int i = 1; i <= n; i++) {
string s;
cin >> s;
if(s.size() > 1 && s[0] == 'B' && s[s.size() - 1] == 'A') cout << "MUTAGENIC" << endl;
else if(s[s.size() - 1] == 'A') cout << "SIMPLE" << endl;
else if(s.size() > 1 && s[s.size() - 2] == 'A' && s[s.size() - 1] == 'B') cout << "FULLY-GROWN" << endl;
else cout << "MUTANT" << endl;
}
return 0;
}