前言: 说真的 这个题我连题目都读不懂 我不知道具体原因是什么 可能是语文不好 可能是理解能力不行 此文章是看了别的大佬解题过程之后才写出来的 我觉得很有必要总结一下 -----分界线---- 补充: 在我写完这个题的代码之后 仍然觉得这个题的表述有问题 也就是这个题实现之后的条件 和题目给出的条件是不太一样的 算了 重点是学习其中有价值的东西
题目:
代码如下:
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
int x = 0;
cin >> x; //输入的字符串个数
while (x--) //8 87654321 x是几 进去几次
{
int key = 0;
int Afront = 0, Amiddle = 0, Alater = 0; //state记录PAT 关键字 后面依次为前面 中间 后面的A的个数
int i = 0;
char arr[100];
cin >> arr;
for (i = 0; i < strlen(arr); i++)
{
// AAAPAAAATAAAAAAAA
if (arr[i] != 'P' && arr[i] != 'A' && arr[i] != 'T')
break;
if (arr[i] == 'P')
{
if (key == 0) //为什么是0就加 不是零就跳呢? 因为整个字符串只能有一个P 如果不是0 就代表出