Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 24157 Accepted Submission(s): 9311
3 olleh !dlrow m'I morf .udh I ekil .mca
hello world! I'm from hdu. I like acm.HintRemember to use getchar() to read '\n' after the interger T, then you may use gets() to read a line and process it.
刚开始发现最后一个单词和前一个连在一块了,改了一个地方就过了,本打算用stringstream重定向,想想好麻烦der,还是用最喜欢的string系列函数吧.还好string支持加号运算-.-|||
#include<iostream> #include<cmath> #include<algorithm> #include<string> using namespace std; int main(void) { int t,loc; cin>>t; getchar(); string s1; while (t--) { getline(cin,s1); loc=0; while (s1.find(" ",loc)!=string::npos)//反转前n-1个单词 { reverse( s1.begin()+loc , s1.begin()+s1.find(" ",loc) ); loc=s1.find(" ",loc)+1;//更新每次反转的begin位置 } reverse( s1.begin()+s1.find_last_of(" ")+1 , s1.end() );//反转最后一个单词 cout<<s1<<endl; } return 0; }