1003. 我要通过!(20)
来源:互联网 发布:淘宝模块怎么添加 编辑:程序博客网 时间:2024/05/30 04:28
本题要求:
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。现在就请你为PAT写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。
输入格式:
每个测试输入包含1个测试用例。第1行给出一个自然数n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过100,且不包含空格。
输出格式:
每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出YES,否则输出NO。
输入样例:
8PATPAATAAPATAAAAPAATAAAAxPATxPTWhateverAPAAATAA
输出样例:
YESYESYESYESNONONONO
解题思路 :
大家都容易在规则3中出错,这里要明白aPbTc正确到底是什么含义,举个例子AAPAATAAAA成立,那么AAPAAATAAAAAA也就成立,既然AAPAAATAAAAAA成立,那么AAPAAAATAAAAAAAA也就成立,以此类推。
代码 :
#include<iostream>#include<string>#include<sstream>#include<algorithm>using namespace std;int main() { int n; cin >> n; for (int i = 0; i < n; i++) { char str[1001]; bool isYes = true; cin >> str; int p = -1, t = -1; int leftA = 0,centerA = 0,rightA = 0; for (int i = 0; str[i] != '\0'; i++) { if (str[i] == 'P') { if (p != -1) { isYes = false; break; } p = i; } else if (str[i] == 'T') { if (t != -1) { isYes = false; break; } t = i; } else if (str[i] == 'A') { if (p == -1) { leftA++; } else if (t == -1) { centerA++; } else { rightA++; } }else { isYes = false; break; } } if (p == -1 || t == -1) { isYes = false; } else if (centerA == 0) { isYes = false; } if (isYes) { if (rightA == leftA && centerA == 1) { cout << "YES" << endl; } else { int a = leftA; int b = centerA; int c = rightA - leftA * (b - 1); if (a == c) { cout << "YES" << endl; } else { cout << "NO" << endl; } } } else { cout << "NO" << endl; } } return 0;}
0 0
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- 1003. 我要通过!(20)
- learnR_basicdataprocessing_5
- HDU:2067 小兔的棋盘
- HDU 2456 饭卡 (01背包)
- 朴素贝叶斯分类
- 砖块着色器详解(GLSL版本)
- 1003. 我要通过!(20)
- CSU-ACM 1004: Xi and Bo
- 2017年个人计划
- 微信小程序布局display flex布局介绍
- 腾讯后台开发面试总结
- Linux apache下导入SSL证书
- 线性表之单链表
- 在霍格沃茨找零钱(20)
- N皇后问题