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".
Could you do it in-place without allocating extra space?
------------------------------------------------------
class Solution {
public:
void reverseWords(string &s) {
reverse(s.begin(),s.end());
int i = 0;
while (i < s.length()) {
int start = i;
while (i < s.length() && s[i] != ' ') {
i++;
}
reverse(s.begin() + start, s.begin() + i);
i++;
}
}
};
No comments:
Post a Comment