PAT 1003(C++)
2021/11/17 1:09:55
本文主要是介绍PAT 1003(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PAT 乙级 1003
题目
我要通过
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。
得到“答案正确”的条件是:
- 字符串中必须仅有
P、 A、 T
这三种字符,不可以包含其它字符; - 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母
A
组成的字符串; - 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中
a、 b、 c
均或者是空字符串,或者是仅由字母A
组成的字符串。
现在就请你为PAT写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。
输入格式
每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n ( ≤ 10 ) n (≤10) n(≤10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。
输出格式
每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出 YES
,否则输出 NO
。
输入样例
10 PAT PAAT AAPATAA AAPAATAAAA xPATx PT Whatever APAAATAA APT APATTAA
结尾无空行
输出样例
YES YES YES YES NO NO NO NO NO NO
结尾无空行
我的代码
#include<iostream> #include<string.h> using namespace std; //返回字符 a出现的次数 int getNum(char *p ,char a,int m){ int i=0,num=0; while(num<m){ if(p[num]==a){ // cout<<p[num]<<endl; i++; num++; } else num++; } return i; } //返回字符 a所在的位置 int getX(char *p,char a){ int i=0; while(*p){ if(p[i]==a){ return i; } else{ i++; } } } int main(){ int n,nlong; cin>>n; while(n--){ bool flag=true; char pat[101]; scanf("%s",pat); nlong =strlen(pat); // cout<<nlong; for(int i=0;i<nlong;i++){ if(pat[i]!='A'&&pat[i]!='P'&&pat[i]!='T'){ flag=false; break; } } // cout<<flag; if(flag==false) {cout<<"NO"; if(n>=1) cout<<endl; } else{ int p=0,t=0,px,tx; p=getNum(pat,'P',nlong); t=getNum(pat,'T',nlong); // cout<<p<<endl<<t<<endl; if(p!=1||t!=1){ cout<<"NO"; if(n>=1) cout<<endl; } else{ px=getX(pat,'P'); tx=getX(pat,'T'); // cout<<px<<endl<<tx<<endl; int a1,a2; a1=getNum(pat,'A',px); a2=getNum(pat,'A',nlong)-(tx-px-1)-a1; // cout<<a1<<endl<<a2<<endl; int b=tx-px; if(b<=1){ cout<<"NO"; if(n>=1) cout<<endl; } else{ if(a2==(b-1)*a1){ cout<<"YES"; if(n>=1){ cout<<endl; } } else{ cout<<"NO"; if(n>=1){ cout<<endl; } } } } } } }
这篇关于PAT 1003(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享