首先分析得到“答案正确”的条件:
1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
3.如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。
即,存在如下推导关系, 设前置A的数量为num1,P和T中间的A的数量为num2,T后面的A的数量为num3,有:
代码如下:
#include<stdio.h>
using namespace std;
const int maxi = 15;
const int maxj = 110;
char str[maxi][maxj];
bool ans[maxi] = {
false};
void judge(int t, char s[]){
bool flagP, flagT;
flagP = flagT = false;
int num1 = 0;
int num2 = 0;