1003 我要通过! (20 分)

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

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

  1. 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
  2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
  3. 如果 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

题记:

不得不承认这个题刚开始我没看懂,后来百度到一种思路:

通过的条件是:①字符串中有一个P,一个T,若干个A,没有其他字母。②P左边A的个数 × P、T之间A的个数 = T右边A的个数。

我们先验证一下上面说到的条件是不是对的:(显然①没有争议,直接看②。)

对于题中给的条件1:0 × 1 = 0。符合。

条件2:x × 1 = x。符合。

条件3:若aPbTc 是正确的,那么 a × b = c,显然 a ×(b+1)=  a × b + a = c + a ,那么 aPbATca 也是正确的。符合。

验证看懂了之后也就明白②的公式怎么来的了,至于自己做题怎么想到这个思路,还是要多做题多练习……

有了思路之后,做题就很容易了,其他不多说,看代码。

参考链接:1003 我要通过!(20)(20 分)

C++代码:

#include<cstdio>
#include<iostream>
using namespace std;int main (){int n;cin >> n;getchar();while(n--){int flag_word = 1;//记录字符类型,若出现PAT之外的字母则变为0 int flag_position = 1;//记录字符位置,P前1,P~T之间2,T后3int num_P=0, num_T=0, num_A=0, num_A1=0, num_A2=0, num_A3=0;//输入并记录各个量 for (char word; word=getchar(), word!='\n'; ){if(flag_position == 1){if(word == 'P'){flag_position ++;num_P ++;}else if(word == 'A'){num_A ++;num_A1 ++;}else{flag_word = 0;}}else if(flag_position == 2){if(word == 'T'){flag_position ++;num_T ++;}else if(word == 'A'){num_A ++;num_A2 ++;}else{flag_word = 0;}}else if(flag_position == 3){if(word == 'A'){num_A ++;num_A3 ++;}else{flag_word = 0;}}}//判断是否符合条件并输出 if(flag_word && num_A && num_P==1 && num_T==1 && num_A1*num_A2==num_A3){cout << "YES" << endl;}else{cout << "NO" << endl;}} return 0;
}

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

  1. PTA 7-9 叶节点求和 (20 分)

    PTA 7-9 叶节点求和 (20 分) 对给定的有N个节点(N>=0)的二叉树,求叶节点元素之和 没有当过父节点的节点都是叶子节点 #include <iostream> #inc ...

  2. C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

    1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 1 的数字 d 开始,序列的第 n ...

  3. C++学习之路 | PTA乙级—— 1082 射击比赛 (20 分)(精简)

    1082 射击比赛 (20 分) 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我 ...

  4. C++学习之路 | PTA乙级—— 1068 万绿丛中一点红 (20 分)(精简)

    1068 万绿丛中一点红 (20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点 ...

  5. C++学习之路 | PTA乙级—— 1063 计算谱半径 (20 分)(精简)

    1063 计算谱半径 (20 分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a ​1 ​​ +b ​1 ​​ i,⋯ ...

  6. C++学习之路 | PTA乙级—— 1057 数零壹 (20 分)(精简)

    1057 数零壹 (20 分) 给定一串长度不超过 10 ​5 ​​ 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N ...

  7. C++学习之路 | PTA乙级—— 1048 数字加密 (20 分)(精简)

    1048 数字加密 (20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 ...

  8. C++学习之路 | PTA乙级—— 1047 编程团体赛 (20 分)(精简)

    1047 编程团体赛 (20 分) 编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队 ...

  9. C++学习之路 | PTA乙级—— 1043 输出PATest (20 分)(精简)

    1043 输出PATest (20 分) 给定一个长度不超过 10 ​4 ​​ 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest- 这样的顺序输出,并忽略其它字符.当然 ...

  10. C++学习之路 | PTA乙级—— 1042 字符统计 (20 分)(精简)

    1042 字符统计 (20 分) 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空 ...

最新文章

  1. esp32 python-MicroPython for esp32
  2. WINCE6.0+S3C2443下的activesync问题
  3. Linux学习:文件描述符相关函数
  4. 一步一步学习OC2007(三)--定制菜单命令
  5. mapper代理(十一)
  6. Spring Boot(一)—— Spring Boot 入门
  7. html5css3js文件作业,HTML5 CSS3 JavaScriptWeb前端开发自测试卷2.docx
  8. “西邮漫记”--自由照耀中国
  9. python requests 提示警告 InsecureRequestWarning
  10. python数字图像处理(10):图像简单滤波
  11. 手机突然变卡,不得不重置
  12. 网页设计中常用的Web安全字体
  13. Ubuntu下如何查看GPU版本和使用信息
  14. python黑客帝国代码雨源代码_黑客帝国数字雨 源代码分享
  15. 移动领先100笔试面试经验
  16. 【刷题】BZOJ 1487 [HNOI2009]无归岛
  17. 计算机机械硬盘系统安装,电脑硬盘安装图解,机械硬盘安装-
  18. 一统大数据江湖,趣话图说“存算分离”武学心法
  19. SpeechRecognition离线语音识别
  20. gel和react哪个厉害_都是顶级缓震,亚瑟士GEL和耐克React谁更胜一筹?__拼团团购网...

热门文章

  1. Linux系统load average异常值处理的trick
  2. python画人脸代码_[转]7行Python代码的人脸识别
  3. 【毕业设计】基于微信小程序的在线答题考试系统
  4. matlab2014b与carsim8.02联合仿真可能遇到的问题
  5. 计蒜客 god of gambler
  6. 02.yuyv转rgb888代码优化
  7. Kotlin: Classifier ‘Demo1‘ does not have a companion object, and thus must be initialized here
  8. 试图加载格式不正确的程序 解决方法
  9. 苹果xr如何关机_苹果新系统让这些 iPhone 电量满血复活
  10. 网易云信七鱼市场总监姜菡钰:实战解读增长黑客在B端业务的运用