PAT 1003.我要通过!(20) java
来源:互联网 发布:linux 复制命令 编辑:程序博客网 时间:2024/06/05 19:47
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。
这题的条件是层层限定的,意味着即使第三个复杂限定下满足的条件,也要满足条件一,那么就一层层的写限定,先判断是否只包含P A T这三个字符;再判断PT前后和之间的字符是否都是A或者为空字符;再判断a*b==c这个关系是否成立,而且使判断更加的严谨。APT:在判断B时,加上是否为空。
package Mains;public class no1003 { public static void main(String args[]) { Scanner scanner =new Scanner(System.in); int circlesum=new Integer(scanner.nextLine()); while (circlesum>0) { String input = scanner.nextLine(); int index = 0, p_index = 0, t_index = 0; p_index = input.indexOf("P"); t_index = input.indexOf("T"); if (input.contains("A")&&input.contains("P")&&input.contains("T")) {//判断是否只包含PAT if (p_index >= 0 && isAllA(input.substring(0, p_index))) {//a是否为空和全为A if (isAllA(input.substring(p_index + 1, t_index))&&(t_index-1!=p_index)) {//b是否全为A且不为空 if (isAllA(input.substring(t_index + 1, input.length()))) {//c是否全为A或者为空 int a = p_index; int b = t_index - p_index - 1; int c = input.length() - t_index - 1; if (a * b == c) {//是否满足条件三 p(true); continue; } } } } } circlesum++; p(false); } return; }// 输出 public static void p(boolean b){ if(b){ System.out.println("YES"); }else { System.out.println("NO"); } } //返回字符是否全为A或者空 public static boolean isAllA(String s){ int index=0; while (index<s.length()){ if(!(s.substring(index,index+1).equals("A")||s.substring(index,index+1).equals(""))){ return false; } index++; } return true; }}
阅读全文
0 0
- Java - PAT - 1003. 我要通过!(20)
- PAT 1003.我要通过!(20) java
- PAT 1003. 我要通过!(20) java实现
- PAT 乙级 1003. 我要通过!(20) Java版
- PAT 1003. 我要通过!(20) —— java
- PAT-B 1003. 我要通过!(20) Java版
- PAT 1003. 我要通过!(20)
- PAT 1003. 我要通过!(20)
- PAT - 1003. 我要通过!(20)
- [PAT]1003. 我要通过!(20)
- PAT basic 1003. 我要通过!(20)
- [PAT]1003. 我要通过!(20)
- PAT 1003. 我要通过!(20)
- PAT 1003. 我要通过!(20)
- [PAT]1003. 我要通过!(20)
- PAT 1003. 我要通过!(20)
- PAT-乙级-1003. 我要通过!(20)
- 1003. 我要通过!(20) PAT乙级
- 一个页面从输入URL到页面加载显示完成,这个过程都发生什java 基础知识-数组的7种算法(排序、求和、最值、遍历...)么?
- 继承
- 【poj 2299】 Ultra-QuickSort 【Waterloo local 2005.02.05】
- 20171013学习日记 CSS
- C Looooops(扩展欧几里得)
- PAT 1003.我要通过!(20) java
- 线代008 矩阵的运算
- [Tensorflow]1.交叉熵(Cross Entropy)算法实现及应用
- python求素数时间
- 一个页面从输入URL到页面加载显示完成,这个过程都发生什么?
- 如何在linux(ubuntu)下安装字体(给wps安装字体)
- http与文件传输
- halcon基于mlp神经网络分类器的OCR字符识别
- 查找字符串中出现最多的字符和它出现的次数和查找某个字符在字符串中出现的次数