Leetcode 557. Reverse Words in a String III

文章作者:Tyan
博客:noahsnail.com  |  ****  |  简书

1. Description

Leetcode 557. Reverse Words in a String III

2. Solution

class Solution {
public:
    string reverseWords(string s) {
        int start = 0;
        for(int i = 0; i < s.length(); i++) {
            if(s[i] == ' ') {
                reverse(s, start, i - 1);
                start = i + 1;
            }
        }
        reverse(s, start, s.length() - 1);
        return s;
    }
    
private:
    void reverse(string& s, int start, int end) {
        while(start < end) {
            swap(s[start++], s[end--]);
        }
    }
    
    void swap(char& a, char& b) {
        char temp = a;
        a = b;
        b = temp;
    }
};

Reference

  1. https://leetcode.com/problems/reverse-words-in-a-string-iii/description/