面试题58 - I. 翻转单词顺序

题目:

 

 

解答:

方法一:

两次反转,先反转每个单词,再反转每个句子。

方法二:

 1 class Solution {
 2 public:
 3     string reverseWords(string s) 
 4     {
 5         if(s.empty())
 6         {
 7             return s;
 8         }
 9 
10         int len = 0;
11         string ans = "";
12 
13         for(int m = s.size()-1; m >=0; m--)
14         {
15             if(s[m]==' ' && len!=0)
16             {
17                 ans += s.substr(m+1,len)+ " ";
18                 len = 0; continue;
19             }
20             if(s[m]!= ' ')
21             {
22                 len++;
23             }
24         }
25         if(len !=0) 
26         {
27             ans += s.substr(0,len) + " ";
28         }
29         if(ans.size()>0)
30         {
31             ans.erase(ans.size()-1,1);
32         }
33         return ans;
34 
35     }
36 };

 

posted @ 2020-05-09 19:35  梦醒潇湘  阅读(174)  评论(0)    收藏  举报