码迷,mamicode.com
首页 > 其他好文 > 详细

反转字符串中的单词 III

时间:2019-12-06 11:36:14      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:一个   swap   tno   stl   反转字符串   留空   tco   empty   eve   

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

示例 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]!=\0&&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]!=\0&&s[j]!= )
                ++j;
            reverse(s.begin()+i,s.begin()+j);
            i=j+1;
        }
        return s;
    }
};

 

反转字符串中的单词 III

标签:一个   swap   tno   stl   反转字符串   留空   tco   empty   eve   

原文地址:https://www.cnblogs.com/tianzeng/p/11994053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!