2017.2.27PAT level B 1003
来源:互联网 发布:d2c旗舰店淘宝 编辑:程序博客网 时间:2024/06/02 21:50
1003. 我要通过!(20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于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
我的想法:
主要是第三条条件比较难懂,但是试着写一些,AAPAATAAAA是正确的,那么假设中间只有一个A的时候,即,b是A的时候,ac,可以为空,ac也可以为AA,因为aPbTc正确,即aPbATca正确,所以,PAAT正确,此时ac为空。即T后A的个数为P前A的个数的P与T中间的A的个数倍。
大致过程就是:
用字符串读入,以字母P和字母T为分界线,计算字母P前,P与T之间,以及T之后的A的个数,如果符合上述规律,则为正确,否则错误。
然而思路清晰了,似乎算法依旧没有那么好写。
先留着,明天写,啊,要去睡觉了QAQ
0 0
- 2017.2.27PAT level B 1003
- 2017.2.27 PAT level B 1002
- PAT Advanced Level 1001:A+B Format
- PAT(Advanced level) 1001. A+B Format
- 【PAT 乙级(Basic Level)】分A+B
- 【PAT 乙级(Basic Level)】A除以B
- PAT(B) Basic level 1045 解题报告
- PAT (Basic Level)1017. A除以B
- PAT(Basic Level):A+B和C
- PAT(A-LEVEL) 1001 A+B Format
- PAT.Basic Level. A+B和C
- PAT(Basic Level)_1011_A+B和C
- PAT(Basic Level)_1016_部分A+B
- PAT(Basic Level)_1017_A除以B
- PAT(Advanced Level) A+B Format
- pat(basic level) 1003
- 浙大 pat Basic Level 1003
- PAT Advanced Level 1003:Emergency
- 《你不可不知的人性》刘墉 读书笔记(二)
- pycharm Cannot find declaration to go to
- Surprise ! I'm back!
- js装饰者模式
- display的属性及属性值意义
- 2017.2.27PAT level B 1003
- 【codevs1234】魔术球问题
- 插入排序算法
- java__给定由大写,小写字母和空格组成的字符串,返回 最后 一个单词的长度。 如果输入中不存在单词,返回 0。
- textView.setCompoundDrawablesWithIntrinsicBounds(item.mDrawable, item.mDrawable , null, null);
- leetcode-110-Balanced Binary Tree
- List<object[]>遍历出错
- 较简单的修改和添加功能(链接数据库)
- IO流_PrintWriter实现自动刷新和换行