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"
Note: In the string, each word is separated
反转一个字符串中的每一个词,每个词用一个空格隔开。用两个索引来表示每个词的开始和结尾,对每个词使用倒转操作即可。
代码:
class Solution
{
public:
string reverseWords(string s)
{
int i = 0, j = 0;
while(i < s.size())
{
while(j < s.size() && s[j] != ' ') ++j;
reverseWord(s, i, j-1);
i = ++j;
}
return s;
}
private:
void reverseWord(string& s, int i, int j)
{
while(i < j)
{
swap(s[i++], s[j--]);
}
}
};