Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
找到bug了,直接用find函数找后缀出的问题...wa了十多次,最后加一个‘r’就AC了In Reply To:给我一个WA的理由!!!! Posted by:qiqilrq at 2007-05-15 14:07:43 > Source > > Problem Id:2803 User Id:qiqilrq > Memory:208K Time:0MS > Language:G++ Result:Wrong Answer > > Source > > //string manipulate > #include <iostream> > #include <map> > #include <string> > using namespace std; > > const string P[2][5]={{"anti", "post", "pre", "re", "un"}, > {"against *", "after *", "before *", "* again", "not *"} > }; > const string S[2][5]={{"er","ing","ize","s","tion"}, > {"one who *s", "to actively *", "change into *","multiple instances of *","the process of *ing"} > }; > > void printsuf(string s){ > int si; > for(si=0; si<5; ++si) > { > int p = s.find(S[0][si]); > if(p>=0 && p == s.length() - S[0][si].length()) > { > // cut off the suffix > string ss(&s[0], &s[p]); > string ps = S[1][si]; > for(int i=0; i<ps.length(); i++) > { > if(ps[i]=='*') > cout<<ss; > else > cout<<ps[i]; > } > return ; > } > } > cout<<s; > } > > void print(string s){ > int pi; > for(pi=0; pi<5; ++pi) > { > if(s.find(P[0][pi]) == 0) > { > // cut off the prefix > string ss = &s[P[0][pi].length()]; > string ps = P[1][pi]; > for(int i = 0; i<ps.length(); i++) > { > if(ps[i]=='*') > printsuf(ss); > else > cout<<ps[i]; > } > return ; > } > } > printsuf(s); > } > > int main() > { > int n; > string str; > cin>>n; > while(n--){ > cin>>str; > print(str); > cout<<endl; > } > return 0; > } > > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator