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         }

猜你喜欢

转载自www.cnblogs.com/wangxiaoyong/p/10417629.html
今日推荐