1 bool fan(string s) 2 { 3 int l=s.size(); 4 string x; 5 for(int i=0;i<l;i++) 6 { 7 8 if(s[i]!=‘P‘) 9 { 10 x+=s[i]; 11 if(s[i]!=‘A‘) 12 return false; 13 } 14 15 else 16 break; 17 18 } 19 if(s==x+"PAT"+x) 20 return true; 21 else 22 return false; 23 }
注意:
写函数时一定要写对立面:return false,否则函数会一直返回return true。
bool bin(string s) { int l=s.size(); string a,b,c; int flag=1,L=0; for(int i=0;i<l;i++) { if(s[i]!=‘P‘&&flag==1) { a+=s[i]; L++; if(s[i]!=‘A‘) return false; } else if(s[i]==‘P‘) { flag=2; } else if(flag==2&&s[i]!=‘T‘) { b+=s[i]; if(s[i]!=‘A‘) return false; } else if(s[i]==‘T‘) { flag=3; } else { c+=s[i]; if(s[i]!=‘A‘) return false; } } int l1=b.size(); if(l1>0) b.erase(b.begin()); else return false; c.erase(c.begin(),c.begin()+L); string q=a+"P"+b+"T"+c; if(s==a+"P"+b+"AT"+c+a&&fan(q)==true) return true; return false; }
注意:
flag如何控制入口,方便在线处理
结尾的return false 一定不要忘记。
时间: 2024-11-01 22:01:08