UVA620 Cellular Structure 题解

本题思路

逐个按照题意判断即可:

  • \(\texttt{SIMPLE}\):串的末尾为字符 A
  • \(\texttt{FULLY-GROWN}\):串的末尾两个字符为 AB
  • \(\texttt{MUTAGENIC}\):串的开头字符为 B,末尾为字符 A
  • \(\texttt{MUTANT}\):上面三种都不符合。

说一下细节:

  • 注意判断顺序,其实应该先判断 MUTAGENIC 的情况,因为 SIMPLEMUTAGENIC 情况中末尾字符都为 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;
}
上一篇:CF975A Aramic script 题解


下一篇:字符串题目:隐藏个人信息