[leetcode] Reverse Words in a String

来源:互联网 发布:sql数据迁移方案 编辑:程序博客网 时间:2024/06/05 00:44

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

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

有几个特殊输入要注意:1. “ ”;2. “ 1”;3. “   a     b”;

我自己的代码,改了很多次,看来自己的编程水平确实是有待提高

void reverseWords(string &s){        int n=s.size();        if(n==0) return;        string temp;        temp.clear();        vector<string> res;        for(int i=0;i<n;i++){                if(s[i]!=' '){                        temp+=s[i];                }                   if(s[i]==' '){                        if(temp.size()!=0){                                res.push_back(temp);                        }                        temp.clear();                }           }           res.push_back(temp);        temp.clear();        int m=res.size();        for(int i=m-1;i>0;i--){                temp+=res[i];                temp+=' ';        }           temp+=res[0];        int si,ei;        int flag=0;        for(int i=0;i<temp.size();i++){                if(temp[i]!=' '){                        flag=1;                        si=i;                        break;                }        }        for(int i=temp.size()-1;i>=0;i--){                if(temp[i]!=' '){                        flag=1;                        ei=i;                        break;                }        }        s.clear();        if(flag==1){                for(int i=si;i<=ei;i++){                        s+=temp[i];                }        }}


0 0