Monday, March 9, 2020

557. Reverse Words in a String III -E

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 by single space and there will not be any extra space in the string.

A:


class Solution {
public:
    string reverseWords(string s) {
        int n = s.length();
        int low = 0, end =0;
        while(low<n){
            // find the last value of end
            end = low;
            while(end+1 < n and s[end+1] != ' ')
            {
                end++;
            }
            reverse(s.begin() + low, s.begin()+end+1);
            // move to next
            low = end+2;
        }
        return s;
    }
};

No comments:

Post a Comment