151 Reverse Words in a String 翻转字符串里的单词

Posted lina2014

tags:

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

给定一个字符串,翻转字符串中的每个单词。
例如,
给定 s = "the sky is blue",
返回 "blue is sky the"。
对于C程序员:请尝试用O(1) 时间复杂度的原地解法。
说明:
    什么构成一个词?
    一系列非空格字符组成一个词。
    输入字符串是否可以包含前导或尾随空格?
    是。但是,您的反转字符串不应包含前导或尾随空格。
    两个单词之间多空格怎么样?
    将它们缩小到反转字符串中的单个空格。
详见:https://leetcode.com/problems/reverse-words-in-a-string/description/

class Solution {
public:
    void reverseWords(string &s) {
        int size=s.size();
        if(size==0||s.empty())
        {
            return;
        }
        reverse(s.begin(),s.end());
        int index=0;
        for(int i=0;i<size;++i)
        {
            if(s[i]!=‘ ‘)
            {
                if(index!=0)
                {
                    s[index++]=‘ ‘;
                }
                int j=i;
                while(j<size&&s[j]!=‘ ‘)
                {
                    s[index++]=s[j++];
                }
                reverse(s.begin()+index-(j-i),s.begin()+index);
            i=j;
            }
        }
        s.resize(index);
    }
};

 

以上是关于151 Reverse Words in a String 翻转字符串里的单词的主要内容,如果未能解决你的问题,请参考以下文章

151. Reverse Words in a String

151. Reverse Words in a String

151. Reverse Words in a String

Leetcode 151. Reverse Words in a String

151. Reverse Words in a String

151. Reverse Words in a String