leetcode Reverse Words in a String

来源:互联网 发布:内网yum服务器 编辑:程序博客网 时间:2024/06/04 18:43
本来想使用网上将的比较多的,先将整个序列翻转之后,从前向后逐个翻转每个单词即可,后来想了一下,如果用一个栈将各个单词拆分后放进去,取出来自然就达到题目的要求,所以基于此实现如下:
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;    }};

0 0