题目
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。
思路
- 翻转句子中所有的字符。比如翻转"I am a student."中所有的字符得到".tneduts a ma I",此时不但翻转了句子中单词的顺序,连单词内的字符顺序也被翻转了。
- 再翻转每个单词中字符的顺序,就得到了"student.a am I"。这正是符合题目要求的输出。
class Solution { public: string ReverseSentence(string str) { if(str.empty()) return ""; reverses(str,0,str.size()-1); int i=0,j=0; while(j<=str.size()) { if(str[i]==' ') { ++i; ++j; } else if(str[j]==' '||str[j]=='