1003 我要通过! (20 分)

“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。

得到“答案正确”的条件是:

字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。
现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。

输入格式:
每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。

输出格式:
每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出 YES,否则输出 NO。

输入样例:
8
PAT
PAAT
AAPATAA
AAPAATAAAA
xPATx
PT
Whatever
APAAATAA
输出样例:
YES
YES
YES
YES
NO
NO
NO
NO

这里就开始学C++了。因为对于字符串,string真的是太好用了。
特别注意:第三个条件:如果 aPbTc 是正确的,那么 aPbATca 也是正确的。这句话没有理解这道题必定卡点。

#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{int n;cin>>n;while (n--){int a=0,b=0,c=0,flag1=0,flag2=0,flag=0;string str;cin>>str;int len=str.length();if (len<3){cout<<"NO"<<endl;continue;}for (int i=0;i<len;i++){if (str[i]=='A'&&flag1==0) ++a;else if (str[i]=='A'&&flag1==1&&flag2==0) ++b;else if (str[i]=='A'&&flag1==1&&flag2==1) ++c;else if (str[i]=='P') flag1++;else if (str[i]=='T') flag2++;else flag++;}if (flag1!=1||flag2!=1||b==0||a*b!=c||flag!=0){cout<<"NO"<<endl;}else {cout<<"YES"<<endl;}}
}

1003 我要通过! (20 分)相关推荐

  1. 1003 我要通过 (20 分)

    题目 题目链接 题解 实现题. 理解题目表达的意思: 字符串中必须仅有 P. A. T 这三种字符,不可以包含其它字符: 可以在 PAT 左右两侧加任意个相同数量的 A,比如 PAT.APATA.AA ...

  2. 1003 我要通过(20 分)

    "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&q ...

  3. 1003 我要通过! (20分)

    1003 我要通过! (20分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件, ...

  4. C++学习之路 | PTA乙级—— 1003 我要通过! (20分)(精简)

    1003 我要通过! (20分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件, ...

  5. PTA 1003 我要通过! (20 分)

    1003 我要通过! (20 分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件 ...

  6. PAT乙级 1003 我要通过! (20分)

    PAT乙级练习总结 PAT乙级 1003 我要通过! (20分) 第二版有注释,希望我的思路可以帮助你. 文章目录 PAT乙级练习总结 一.1003题目 二.第一版只过了三个点 三.第二版 1003 ...

  7. PAT刷题集(乙级)1003 我要通过!(20 分)

    1003 我要通过!(20 分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件, ...

  8. (C语言最详细解析)1003 我要通过! (20 分)

    1003 我要通过! (20 分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件 ...

  9. 1003 我要通过! (18/20 分)

    1003 我要通过! (20 分) "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件 ...

最新文章

  1. ganglia访问时出现“You don‘t have permission to access /ganglia/ on this server“
  2. Python 错误和异常
  3. python3精要(55)-模块,私有方法
  4. GDCM:gdcm::IconImageGenerator的测试程序
  5. Mac Android Studio 常用快捷键
  6. java通过jni调用C程序接口
  7. 12 月 Web 服务器调查:“王者” nginx 增长最快!
  8. mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享
  9. iOS 13 暗黑模式的适配
  10. php float转int 元转分
  11. PaaS安全:降低企业风险的四条规则
  12. java 正则表达式 img src_腰酸推荐Java-Jsoup爬取妹子图
  13. 孩子们的游戏(圆圈中最后剩下的数)(Python)
  14. (二) redfish简单信息获取
  15. excel快速删除奇偶数行
  16. Centos 7 mysql 数据库安装和配置
  17. 学习Vue3 第一章
  18. 密码分析之单表代换原理详解与算法实现
  19. 《让子弹飞》系列——张麻子的斗争策略
  20. 原画师一般用什么软件画画?原画师需要用到什么工具?

热门文章

  1. VC6下使用WebLink控件
  2. IDEA中导入支付宝电脑网站支付测试Demo遇到的错误
  3. typescript 安装
  4. ado.net mysql 连接池_ADO.NET数据库连接池的介绍 | 学步园
  5. idea 多模块build_[史上最详细]springboot创建基于maven的多模块项目
  6. ubuntu等linux系统给windows共享文件
  7. sudo apt update提示某个源超时
  8. 2020计算机领域前沿热门技术,CFP: ICPCSEE 2020 (SCI or EI Indexd) 第6届国际计算机前沿大会...
  9. php 判断网络图片是否存,PHP判断远程图片或文件或url是否存在-180
  10. Nginx----实现https站点