PAT B1003
来源:互联网 发布:淘宝图片实拍保护网址 编辑:程序博客网 时间:2024/05/21 09:19
1003. 我要通过!(20)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。
得到“答案正确”的条件是:
1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;
2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。
输入格式:每个测试输入包含1个测试用例。第1行给出一个自然数n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过100,且不包含空格。
输出格式:每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出YES,否则输出NO。
输入样例:8PATPAATAAPATAAAAPAATAAAAxPATxPTWhateverAPAAATAA
输出样例:YESYESYESYESNONONONO
代码如下:
#include <cstdio>#include <cstring>#include <iostream>using namespace std;char a[110];bool keyi(char * a) { bool P = false, T = false; for(int i = 0; i < strlen(a); i++){ if(a[i] == 'P') P = true; if(a[i] == 'T') T = true; } int i, j, l, left = 0, center = 0, right = 0; if(P && T){ for(i = 0; i < strlen(a); i++){ if(a[i] == 'A' || a[i] == 'P'){ if(a[i] == 'A') left++; if(a[i] == 'P') break; } else { return false; } } for(j = i + 1; j < strlen(a); j++){ if(a[j] == 'A' || a[j] == 'T'){ if(a[j] == 'A') center++; if(a[j] == 'T') break; } else { return false; } } for(l = j + 1; l < strlen(a); l++){ if(a[l] == 'A') right++; else return false; } } else { return false; } if((left * center) == right && center > 0) return true; else return false;}int main(){ int N; cin>>N; while(N--){ scanf("%s", a); if(keyi(a)){ printf("YES\n"); } else { printf("NO\n"); } } return 0;}
0 0
- PAT B1003
- PAT B1003
- PAT B1003 我要通过
- PAT-B1003. 我要通过!
- PAT B1003. 我要通过!
- B1003
- PAT乙级练习题B1003. 我要通过!
- pat-b1003. 我要通过!(20)
- 数学问题--PAT.B1003. 我要通过
- PAT-B1003. 我要通过!(20)(数学)
- b1003. 我要通过!(20)
- B1003. 我要通过!(20')
- pat
- 【PAT】
- PAT
- PAT
- PAT
- PAT
- Shimeji开源桌宠代码学习(3)
- 新浪短链接API接口示例
- 【机房合作】策略+职责链在下机中的应用
- SSL P1364 医院设置
- python快速入门
- PAT B1003
- Android APP启动时出现白屏或者黑屏怎么办?
- C++删除空指针的一个坑
- 理解闭包(二)
- 《超智能体》提供下载项
- 全排列
- redis之string
- 水面无人艇局部危险避障算法研究 中英文摘要
- CCF 201403-4 无线网络(spfa+dp)