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 我要通过!的主要内容,如果未能解决你的问题,请参考以下文章