LeetCode 题解之Reverse Words in a String

1、题目描述

 

2、问题分析

使用一个vector存储每个单词。

 

3、代码

 1 void reverseWords(string &s) {
 2         vector<string> v;
 3         for (string::iterator it = s.begin(); it != s.end(); ) {
 4             if (*it == ' ') {
 5                 it++;
 6             }
 7             else {
 8                 auto itr = it + 1;
 9                 
10                 while (*itr != ' ' && itr != s.end()) {
11                     itr++;
12                 }
13                     
14                 string sub = s.substr(it - s.begin(), itr - it);
15                 v.push_back(sub);
16                 if (itr == s.end())
17                     break;
18                 it = itr + 1;
19             }
20         }
21 
22         s.clear();
23         for (vector<string>::reverse_iterator rv = v.rbegin(); rv != v.rend(); rv++) {
24             if (rv + 1 != v.rend()) {
25                 s += *rv;
26                 s += ' ';
27             } else {
28                 s += *rv;
29             }
30         }
31 
32         }

 

posted @ 2019-02-22 12:11  山里的小勇子  阅读(110)  评论(0编辑  收藏  举报