C++ 557. 反转字符串中的单词 III

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入:s = “Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
示例 2:

输入: s = “Mr Ding”
输出:“rM gniD”

提示:

1 <= s.length <= 5 * 104
s 包含可打印的 ASCII 字符。
s 不包含任何开头或结尾空格。
s 里 至少 有一个词。
s 中的所有单词都用一个空格隔开。

class Solution {
public:
    string reverseWords(string s) {
        for(int i = 0; i < s.size(); i ++) {
            int j = i;
            while(s[j] != ' ' && j < s.size()) j ++;
            for(int t = i, k = j - 1; t < k; t ++, k --) swap(s[t], s[k]);
            i = j;
        }
        return s;
    }
};

你可能感兴趣的:(力扣,字符串,c++,算法)