leetcode-Reverse Words in a String

来源:互联网 发布:2016下半年的网络综艺 编辑:程序博客网 时间:2024/04/30 09:32

Given an input string, reverse the string word by word.

For example,
Given s = "the sky is blue",
return "blue is sky the".

分析;先翻转全部字符,再按单词翻转,最后去掉多余的空格

class Solution {public:    void reverseWords(string &s) {        int n = s.length();        reverse(s.begin(),s.end());        vector<int> v;        v.push_back(-1);        for(int i = 0; i < n; i++)        {            if(s[i] == ' ')                v.push_back(i);        }        v.push_back(n);        int m = v.size();        for(int i = 0; i < m-1; i++)        {            reverse(s.begin()+v[i]+1, s.begin()+v[i+1]);        }        string s1;        for(int i = 0; i < n; i++)        {            if(s[i] != ' ')                s1 += s[i];            else if(s1 !="" && i != n-1 && s[i+1] !=' ')                s1 += s[i];        }        s = s1;    }};



0 0
原创粉丝点击