leetcode557. Reverse Words in a String III

Posted 17bdw

tags:

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

Algorithm

【leetcode】557. Reverse Words in a String III

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

1)problem

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.

2)answer

判断是否为空格,然后每个单词转换。有一个很好用的交换函数swap。

3)solution

class Solution {
public:
    string reverseWords(string s) {
        int begin = 0;
        int end = 0;
        for (int i = 0; i <= s.length(); ++i) {
            //如果遇到了空格,就准备颠倒每个字符串的值
            if (s[i] == ' ' || s[i] == '') {
                end = i;
                // 转换每个单词的值,end是单词的结尾长度,j是单词开始长度。
                for (int j = begin; j < end; ++j) {
                    std::swap(s[j], s[--end]);
                }
                begin = i + 1;
            }
        }
        return s;
    }
};

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

LeetCode - 557. Reverse Words in a String III

LeetCode 557. Reverse Words in a String III

leetcode-557-Reverse Words in a String III

LeetCode 557. Reverse Words in a String III

Leetcode557 Reverse Words in a String III Java实现

leetcode No557. Reverse Words in a String III