Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Input: “Let’s take LeetCode contest”
Output: “s’teL ekat edoCteeL tsetnoc”
class Solution {
public:
string reverseWords(string s) {
int start = 0;
while (start < s.size() && s[start] == ' ')
++start;
for (int end = start + 1; end < s.size(); ++end) {
if (s[end] == ' ') {
reverse(s.begin() + start, s.begin() + end);
start = end ;
while (start < s.size() && s[start] == ' ')
++start;
end = start;
if (start >= s.size())
break;
}
else if (end == s.size() - 1) {
reverse(s.begin() + start, s.end());
}
}
return s;
}
};