1003 我要通过!

Posted gzu_zb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1003 我要通过!相关的知识,希望对你有一定的参考价值。

题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805323154440192

题解:

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<string>
 4 using namespace std;
 5 
 6 int main(){
 7     int n;
 8     cin>>n;
 9     getchar();
10     string *str = new string[n];
11     for(int i=0;i<n;i++)
12         getline(cin,str[i]);
13     for(int i=0;i<n;i++){
14         if((str[i][0]==P&&str[i][1]==A&&str[i][2]==T)&&(str[i].size()==3)){
15             cout<<"YES"<<endl;
16         }
17         else if((str[i][0]==P&&str[i][1]==A&&str[i][2]==A&&str[i][3]==T)&&(str[i].size()==4)){
18             cout<<"YES"<<endl;
19         }
20         else{
21             int nP=0,nA=0,nT=0;
22             bool flag=false;
23             for(int j=0;j<str[i].size();j++){
24                 if(str[i][j]==P) nP++;
25                 if(str[i][j]==A) nA++;
26                 if(str[i][j]==T) nT++;
27             }
28             if(nP==1&&nT==1&&nA>0&&nP+nA+nT==str[i].size()) flag=true;//nA>0是为了防止出现PT这种情况
29             if(!flag){
30                 cout<<"NO"<<endl;
31             }
32             else{
33                 int len_l=0,len_m=0,len_r=0,j=0;
34                 for(j=0;j<str[i].size();j++){
35                     if(str[i][j]==P) {
36                         len_l=j;
37                         break;
38                     }
39                 }
40                 j++;
41                 while(str[i][j]!=T){
42                     len_m++;
43                     j++;
44                 }
45                 j++;
46                 len_r=str[i].size()-j;
47                 if(len_l*len_m==len_r) cout<<"YES"<<endl;
48                 else cout<<"NO"<<endl;
49             }
50         }
51     }
52     return 0;
53 }

 

以上是关于1003 我要通过!的主要内容,如果未能解决你的问题,请参考以下文章

JAVA1003 我要通过!(20分) PAT乙级 PAT (Basic Level)Practice (中文)

PTA-1003 我要通过!

1003.我要通过!(20)

[PAT Basic] 1003.我要通过!

1003 我要通过!

1003 我要通过!*