翻转单词顺序列

先整体翻转一次,再一个个进行翻转,需要注意的是代码里一些字符串的操作,值得记住。

 1 class Solution {
 2 public:
 3     string ReverseSentence(string str) {
 4         if (str.empty()) return str;
 5         reverse(str.begin(), str.end());
 6          
 7         size_t beg = 0;
 8         size_t end = 0;
 9         while (end != string::npos){
10             beg=str.find_first_not_of(' ',beg);
11             end=str.find_first_of(' ',beg);
12              
13             if (beg == string::npos) return str;
14             if (end == string::npos)
15                 reverse(str.begin()+beg, str.end());
16             else
17             {
18                 reverse(str.begin()+beg, str.begin()+end);
19                 beg = end+1;
20             }
21         }
22          
23         return str;    
24     }
25 };
View Code

 

posted @ 2016-03-27 14:59  vaevaevae  阅读(151)  评论(0编辑  收藏  举报