力扣151. 反转字符串中的单词

 暴力思路:找出所有单词后再反转,需要辅助空间。

 1 class Solution {
 2 public:
 3     string reverseWords(string s) {
 4         if (s.size() <= 1) {
 5             return s;
 6         }
 7         vector<string> v;
 8         string temp;
 9         if (s[0] != ' ') temp.push_back(s[0]);
10         for (int i = 1; i < s.size(); ++i) {
11             if (s[i - 1] != ' ' && s[i] == ' '){ //单词尾
12                 v.push_back(temp);
13                 temp = "";
14             } else if (s[i - 1] == ' ' && s[i] == ' '){ //多空格
15                 continue;
16             } else {
17                 temp.push_back(s[i]);
18                 if (i == s.size() - 1) {
19                     v.push_back(temp);
20                 }
21             }
22         }
23         string res = "";
24         for (auto it = v.rbegin(); it != v.rend(); ++it) { //反转
25             res += *it;
26             res.push_back(' ');
27         }
28         res.pop_back(); //删除尾部多余空格
29         return res;
30     }
31 };

 

posted on 2025-03-26 19:08  Coder何  阅读(5)  评论(0)    收藏  举报