1003. 我要通过!(20)
2015-12-20 16:29
134 查看
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
遇到的问题:
1.读入一个整数(nextInt())之后再读字符串(nextLine()),要消除读整数之后剩下的回车符,否则第一个读到的字符串为空。
参考链接
http://zhidao.baidu.com/link?url=cLr8DKjzoju-tlYuyU1-rbSqjTpSUxVqzDZTyhu28Hf6DEA317KF1o_Wf8INy6VZ5RUfP1L830-jO1ZBeBRX-_
2.利用子串构造字符串
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于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
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); int num_pat=in.nextInt(); in.nextLine(); String[] str_pat=new String[num_pat]; // Scanner in1=new Scanner(System.in); for(int i=0;i<num_pat;i++){ str_pat[i]=in.nextLine(); } in.close(); for(int i=0;i<num_pat;i++){ //System.out.println(str_pat[i]); String answer=JudgePAT(str_pat[i]); System.out.println(answer); } } private static String JudgePAT(String arg){ int p_index=arg.indexOf("P"); // System.out.println("p_index= "+p_index); if(p_index<0){ return "NO"; } String pre_PAT=arg.substring(0, p_index); String aft_PAT=pre_PAT; for(int i=0;i<p_index;i++){ if(pre_PAT.charAt(i)!='A'){ return "NO"; } } // System.out.println(pre_PAT); // System.out.println(pre_PAT+"PAT"+aft_PAT); String TolPAT=pre_PAT+"PAT"+aft_PAT; int n=2; while(TolPAT.length()<101){ if(TolPAT.equals(arg)){ return "YES"; } aft_PAT+=pre_PAT; TolPAT=TolPAT.substring(0, p_index+n)+"AT"+aft_PAT; // System.out.println(TolPAT); n++; } return "NO"; } }
遇到的问题:
1.读入一个整数(nextInt())之后再读字符串(nextLine()),要消除读整数之后剩下的回车符,否则第一个读到的字符串为空。
参考链接
http://zhidao.baidu.com/link?url=cLr8DKjzoju-tlYuyU1-rbSqjTpSUxVqzDZTyhu28Hf6DEA317KF1o_Wf8INy6VZ5RUfP1L830-jO1ZBeBRX-_
2.利用子串构造字符串
相关文章推荐
- android 计数器---定时执行任务
- 用hexo书写github.io博客 学习心得 教程
- HTML5&Flash之粗知浅见
- Android中TouchEvent触摸事件机制
- 编辑内容
- 数据结构上机实验-希尔排序,快速排序,堆排序
- 在工作组环境下配置CA并应用到Web服务器和客户端
- 软件工程实践总结
- 文件API-----API 是什么文件
- HTML5 Web存储(Web Storage)(4)
- 马上使用HTML5的十大理由
- HTML5的优点是什么
- iOS UICollectionView简单使用
- 第一個C程式
- adapter的使用
- BASH基础特性总结
- HTML5 Web存储(Web Storage)(3)
- HTML5技术的好处在哪里
- Java实现压力测试---可输出请求信息、error信息
- WordPress源代码压缩优化及常见问题的解决