PAT乙級1003: 我要通過
阿新 • • 發佈:2018-12-14
題目:
解題思路:
用map來儲存每個元素出現的次數 ,本題的要點是找規律,找到aPcAc(其中abc可以是空字串或者只包含A的字串,並且a的個數*b的個數=c的個數)
題解:
#include<iostream> #include<map> using namespace std; int main() { // freopen("D://test.txt","r",stdin); int n; cin>>n; string str[n]; for(int i=0;i<n;i++) { cin>>str[i]; } for(int i=0;i<n;i++) { map<char,int> m; int ppos=-1,tpos=-1; string s=str[i]; for(unsigned int i=0;i<s.length();i++) { m[s[i]]++;//用來累加各個字元的個數 if(s[i]=='P') ppos=i; if(s[i]=='T') tpos=i; } if(m['P']==1&&m['T']==1&&ppos<tpos&&m.size()==3) { if(ppos*(tpos-1-ppos)==s.length()-1-tpos) cout<<"YES"<<endl; else cout<<"NO"<<endl; } else cout<<"NO"<<endl; } }
踩坑:
- 可能由於題目是英文翻譯過來的,所以讀題目不能全按中文的思維來。