反转字符串中的单词 III

Posted tianzeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转字符串中的单词 III相关的知识,希望对你有一定的参考价值。

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let‘s take LeetCode contest"
输出: "s‘teL ekat edoCteeL tsetnoc" 
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

code1:使用自定义reverse函数

class Solution {
public:
    string reverseWords(string s) {
        if(s.empty())
            return "";

        for(int i=0;i<s.size();)
        {
            if(s[i]== )
                continue;
            int j=i+1;
            while(s[j]!=&&s[j]!= )
                ++j;
            --j;
            reverseWordsCore(s,i,j);
            i=j+2;
        }
        return s;
    }
private:
    void reverseWordsCore(string &s,int i,int j)
    {
        while(i<=j)
            swap(s[i++],s[j--]);
        return;
    }
};

code2:使用stl中reverse

class Solution {
public:
    string reverseWords(string s) {
        if(s.empty())
            return "";

        for(int i=0;i<s.size();)
        {
            if(s[i]== )
                continue;
            int j=i+1;
            while(s[j]!=&&s[j]!= )
                ++j;
            reverse(s.begin()+i,s.begin()+j);
            i=j+1;
        }
        return s;
    }
};

 

以上是关于反转字符串中的单词 III的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 557.反转字符串中的单词III

LeetCode 0557. 反转字符串中的单词 III

557. 反转字符串中的单词 III

LeetCode 反转字符串中的单词 III

反转字符串中的单词 III

LeetCode刷题557-简单-反转字符串中的单词 III