1003. 我要通过!(20)
2015-12-23 16:08
204 查看
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 组成的字符串。
现在就请你为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
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n, i; int a, b, c; String s; n = in.nextInt(); while (n-- > 0) { String result = "NO"; s = in.next(); if (s.matches("A*P{1}A+T{1}A*")) { if (s.indexOf('P') == s.lastIndexOf('P') && s.indexOf ('T') == s.lastIndexOf('T')) { a = s.indexOf('P'); b = s.indexOf('T') - s.indexOf('P') - 1; c = s.length() - s.indexOf('T') - 1; if (b == 1) { if (a == c) { result = "YES"; } } else if (b > 1) { if (a == 0 && c == 0) { result = "YES"; } else if (a * b == c) { result = "YES"; } } } } System.out.println(result); } } }
相关文章推荐
- Your project path contains non-ASCII characters
- Azure Redis Cache
- unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
- 微软程序员最好的时代来了
- 12月23号 Foundation库NSMutableArray操作
- Swift实用技巧:如何正确地定义一个类变量和类常量
- 大图片banner居中
- IOS版添加phonegap---为APP添加CNZZ统计插件教程
- 使用IntelliJ IDEA分享、获取Github项目
- linux命令之awk终极系列
- Delphi 数据类型
- 单片机TM4C123学习(六):看门狗
- 关于百度鹰眼中 xcode 7 编译报错问题
- Java的indexOf返回的是第一个匹配到的字符的索引位置,substring(a,b)获得字符串的一部分内容
- Lua-require
- SHH数据结构-【实训-银行业务的模拟系统 】
- 使MySQL能够存储emoji表情字符的设置教程
- Mean Shift 均值漂移聚类
- 脸上长痘部位详解 从痘痘看身体状况
- 对于linux下system()函数的深度理解(整理)