557. Reverse Words in a String III

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.

 

翻转每个单词

class Solution {
public:
    string reverseWords(string s) {
        int n = s.length();
        int m = 0;
        for (int i = 0; i < n; ++i) {
            if (s[i] == ' ') {
                reverse(s.begin() + m, s.begin() + i);
                m = i + 1;
            }
            else if (i == n - 1) {
                reverse(s.begin() + m, s.end());
            }
        }
        return s;
    }
};

 

posted on 2017-07-27 21:40  Beserious  阅读(159)  评论(0编辑  收藏  举报