leetcode No557. Reverse Words in a String III

Posted Dufre.WC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode No557. Reverse Words in a String III相关的知识,希望对你有一定的参考价值。

Question

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.

Algorithm

这一题比较简单:

  • 切分
  • 交换

Code

class Solution 
public:
    void reverseWords(int first, int last, string &s)
        while(first < last)
            s[first] ^= s[last];
            s[last] ^= s[first];
            s[first++] ^= s[last--];
        
    
    string reverseWords(string s) 
        int first = 0;
        int last = 0;
        while(last < s.size())
            while(last < s.size() && s[last] != ' ')
                last++;
            reverseWords(first, last-1, s);
            first = last + 1;
            last++;
        
        return s;
    
;

以上是关于leetcode No557. Reverse Words in a String III的主要内容,如果未能解决你的问题,请参考以下文章

557. Reverse Words in a String III

557. Reverse Words in a String III

[leetcode-557-Reverse Words in a String III]

leetcode557. Reverse Words in a String III

557. Reverse Words in a String IIIeasy

557. Reverse Words in a String III