Given an input string, reverse the string word by word.
Example 1:
Input: "the sky is blue
" Output: "blue is sky the
"
Example 2:
Input: " hello world! " Output: "world! hello" Explanation: Your reversed string should not contain leading or trailing spaces.
Example 3:
Input: "a good example" Output: "example good a" Explanation: You need to reduce multiple spaces between two words to a single space in the reversed string.
class Solution { public: //去掉多余的空格 string reverseWords(string s) { int i=0; while(s[i] == ' ') s.erase(s.begin()); reverse(s.begin(),s.end()); i=0; while(s[i] == ' ') s.erase(s.begin()); //翻转 int j=0; cout<<s<<endl; for(i=0;i<s.size();i++){ if(s[i] == ' '){ reverse(s.begin()+j,s.begin()+i); i++; while(s[i] == ' ') s.erase(s.begin()+i); j = i; } } //最后一个 reverse第二个参数是翻转的位置的后一个位置,所以单独考虑 reverse(s.begin()+j,s.end()); return s; }