leetcode-Reverse Words in a String-151

输入一个字符串,逆序其中的单词

先遍历一遍字符串,把单词放入vector<string> vs中,然后逆序vs,之后遍历一遍vs放入s中

注意可能有连续很多个空格

 1 class Solution {
 2 public:
 3     void reverseWords(string &s) {
 4         if(s.size()==0) return;
 5         vector<string> vs;
 6         string st;
 7         for(int i=0;i<s.size();i++){
 8             if(s[i]==' '){
 9                 if(!st.empty()){
10                     vs.push_back(st);
11                     st.clear();
12                 }
13             }
14             else{
15                 st+=s[i];
16             }
17         }
18         if(!st.empty()) vs.push_back(st);
19         reverse(vs.begin(),vs.end());
20         s.clear();
21         for(int i=0;i<vs.size();i++){
22             for(int j=0;j<vs[i].size();j++) s+=vs[i][j];
23             if(i!=vs.size()-1) s+=' ';
24         };
25     }
26 };

 

posted @ 2016-08-31 18:57  0_summer  阅读(112)  评论(0编辑  收藏  举报