题目的意思就一个细胞 先是A.
然后有两种成长方式,一种是后面加AB,一种是前面加B,后面加A.
问给出的串最后一次进行的成长是哪个方式.
就把一个指针指在开头,一个指针指在尾部.
满足第一种,就把尾指针减2.
满足第二种,就把头指针加1 .尾指针减1 .
知道头尾指针知道同一个位置. 期间如果出现两种情况都不满足,就
MUTANT最后剩下的那个如果不是A,那么也
MUTANT
AC代码 :
#include<iostream>
#include<string>
using namespace std;
string str;
string ans;
int main () {
int t ;
cin >> t;
int len1 ;
int len2 ;
while (t--) {
cin >> str;
bool flag = true;
len1 = 0 ;
len2 = str.size() - 1;
if(len2 == 0 && str[0] == 'A') {
cout << "SIMPLE\n" ;
continue;
}
while (len1 != len2) {
if (str[len1] == 'B' && str[len2] == 'A') {
len1++;
len2--;
if (flag) {
flag = false;
ans = "MUTAGENIC";
}
continue;
}
if (str[len2] == 'B' && str[len2 - 1] == 'A' ) {
len2 -= 2;
if (flag) {
flag = false;
ans = "FULLY-GROWN";
}
continue;
}
ans = "MUTANT";
break;
}
if(len1 == len2 && str[len1] != 'A') {
ans = "MUTANT" ;
}
cout << ans <<endl;
}
}