现在的位置: 首页 > 综合 > 正文

leetcode Reverse Words in a String

2019年04月01日 ⁄ 综合 ⁄ 共 541字 ⁄ 字号 评论关闭

本来想使用网上将的比较多的,先将整个序列翻转之后,从前向后逐个翻转每个单词即可,后来想了一下,如果用一个栈将各个单词拆分后放进去,取出来自然就达到题目的要求,所以基于此实现如下:

class Solution {
public:
    void reverseWords(string &s) {
        stack<string>tmp;
        int len=s.size();
        if(len==0)return ;
        int l=-1,r=-1;
        for(int i=0;i<=len;i++){
            if(i==len||s[i]==' '){
                if(l<r){
                    tmp.push(s.substr(l+1,r-l));
                }
                l=i;
            }
            else{
                r=i;
            }
        }
        s="";
        if(!tmp.empty()){
            s=tmp.top();
            tmp.pop();
        }
        while(!tmp.empty()){
            s+=" "+tmp.top();
            tmp.pop();
        }
        return;
    }
};

抱歉!评论已关闭.