Tuesday, March 29, 2016

LeetCode Q186: Reverse Words in a String II

Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters.
The input string does not contain leading or trailing spaces and the words are always separated by a single space.
For example,
Given s = "the sky is blue",
return "blue is sky the".
class Solution {
public:
void reverseWords(string &s){
reverse(s.begin(), s.end());
auto l=s.begin();
auto r=s.begin();
while(l!=s.end()){
while(*r!=' '&& r!=s.end())
r++;
reverse(l, r);
l=r+1;
if(r==s.end())
break;
else
r++;
}
}
};

No comments:

Post a Comment