PAT Basic 1003

2024-06-02 02:08
文章标签 pat basic 1003

本文主要是介绍PAT Basic 1003,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1003. 我要通过!(20)

时间限制
400 ms
内存限制
32000 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.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class PAT1003 {public static void main(String[] args) {int flagSum = 0;ArrayList<String> stringList=new ArrayList<String>();Scanner sc = new Scanner(System.in);flagSum = Integer.parseInt(sc.nextLine());for(int i = 0;i<flagSum;++i){stringList.add(sc.nextLine());}String pattern = "A*PA+TA*";String pattern1 = "PA+T";for(String x:stringList){if(x.matches(pattern)){if(x.matches(pattern1)){System.out.println("YES");}else{String temp[] = x.split("P|T");int aLength = temp[0].length();int bLength = temp[1].length();int cLength = temp[2].length();if((cLength-aLength)/aLength==(bLength-1)){System.out.println("YES");}else{System.out.println("NO");}}}else{System.out.println("NO");}}}
}


这篇关于PAT Basic 1003的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022747

相关文章

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

Basic Calculator 总结

Basic Calculator 思路:stack中间存数,遇见+,-都当符号位,push num或者-num进去;最后相加;重要的是如何处理括号,那么这里一种方法是用递归调用;count左右括号,如果为0,那么就是一个反括号的位置了,那么 //(      ) //j......i; substring(j + 1, i); 这题的通用解法,可以扩展到二三题; class Solutio

九度考研真题 浙大 2010-1浙大1003:A+B

//题目1003:A+B #include<iostream> #include<string.h> using namespace std; int main() { int n1,n2; int s1[12],s2[12]; int s[12]; char c1[20],c2[20]; while(cin>>c1){ n1=0,n2=0;

POJ 百炼 保研机试 1003:Hangover

1003:Hangover 查看提交统计提示提问 总时间限制:  1000ms  内存限制:  65536kB 描述 How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a ca

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确

HDU 1003(最大子序列和)

题意:给出数据组数,每组第一个数为序列的长度n,后面跟着n个数。求这个序列的最大子序列和。 #include <cstdio>#include <climits>void res(){int n, sum = 0, _max = INT_MIN, t, head = 0, s, e;scanf("%d", &n);for (int i = 0; i < n; ++i){scanf

做克隆虚拟机的basic

新建一台虚拟机(之前写的有这一步) 虚拟机里操作 vi /etc/hostname    改称basic (可改可不改)  vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILU

【Http认证方式】——Basic认证

今天在访问请求:http://192.168.2.113:8080/geoserver/rest/workspaces时,浏览器弹出窗口需要输入用户名和密码 ,并且,如果不输入或者输入错误,浏览器返回 可以在火狐浏览器的网络监控这里看到请求的详细信息,