PAT乙级1003
2017-03-30 22:40
169 查看
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于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
得到“答案正确”的条件是:
字符串中必须仅有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
#include<iostream> #include<string> using namespace std; int main(void){ int judgest(string s); int flag[10]; string s; int n; cin>>n; int i; for(i=0;i<n;i++) { cin>>s; flag[i]=judgest(s); } for(i=0;i<n;i++){ if(flag[i]==1) cout<<"YES"<<'\n'; if(flag[i]==0) cout<<"NO"<<'\n'; } } int judgest(string s){ int flag=1; int i; int index1; int index2; int len=s.size(); for(i=0;i<s.size();i++){ if(s[i]!='P'||s[i]!='A'||s[i]!='T') flag=0; } index1=s.find('P',0); index2=s.find('T',0); //从0开始查找T在当前字符串的位置 if(index1==string::npos||index2==string::npos) flag=0; else{ string a(s,0,index1); string b(s,index1+1,index2-1); string c(s,index2+1,len); // for(i=0;i<a.size();i++){ // if(a[i]!='A'||a[i]!='') flag=0; // } // for(i=index2;i<=len;i++){ // if(c[i]!='A'||c[i]!='') flag=0; // } // for(i=index;i<=index2-1;i++){ // if(b[i]!='A') flag=0; // } // } //调用find方法,更高效 string subs=a+b+c; if(subs.find_first_not_of('A')!=string::npos) flag=0; //寻找字符串中第一个与A不匹配的字符,存在就error else{ if(index1==0&&len-index2-1==0&&(index2-index1==2)) flag=1; else if(((index1+1)*(index1+1)==len-index2)&&(index2-index1-2)==1) flag=1; else flag=0; } return flag; } }
相关文章推荐
- PAT乙级题 1003 python解答
- PAT乙级(Basic Level)真题-1003 数素数 (20)
- PAT乙级1003
- ------PAT乙级----1003
- PAT乙级1003
- PAT乙级 1003. 我要通过!(20)
- 浙江大学PAT_乙级_1003. 我要通过!(20)
- PAT乙级1003我要通过!(20)
- PAT_乙级1003
- PAT(乙级) 1003.我要通过
- 浙大PAT乙级 1003. 我要通过!
- PAT乙级—1003. 我要通过!(20)-native
- PAT 乙级1003 我要通过
- PAT乙级试题 1003
- PAT乙级1003(C语言)-我要通过!(20)
- PAT乙级-1003. 我要通过!
- PAT 乙级 1003
- 【PAT乙级真题及训练集】1003. 我要通过!(20)
- PAT——乙级真题1003代码
- pat 乙级 1003 我要通过!(20)