557. 反轉字符串中的單詞 III


給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。

示例 1:

輸入: "Let's take LeetCode contest"
輸出: "s'teL ekat edoCteeL tsetnoc" 

注意:在字符串中,每個單詞由單個空格分隔,並且字符串中不會有任何額外的空格。

思路:先將給定的字符串(s)中的單詞拆分出來(str),然后單個處理每個單詞,拼接成一個新的字符串(ans),返回ans.

總結:

 1 static const auto __ = []()
 2 {
 3     ios::sync_with_stdio(false);
 4     cin.tie(nullptr);
 5     return nullptr;
 6 }();
 7 
 8 class Solution {
 9 public:
10     string reverseWords(string s) {
11         string ans="";
12         vector<string>str;
13         string st = "";
14         for(int i = 0; i < s.length(); i++) {
15             if(s[i] != ' ')
16                 st += s[i];
17             
18             if(s[i] == ' '|| i == s.length()-1) {
19                 str.push_back(st);
20                 st = "";
21                 
22             }
23             
24         }
25         for(int i = 0; i < str.size(); i++) {
26             for(int j = str[i].length() - 1; j >= 0; j--) {
27                 ans += str[i][j];
28             }
29             if(i !=  str.size()-1) {
30                 ans += " ";
31             }
32         }
33         return ans;
34     }
35 };

使用vector容器,數組要用length( )

在處理字符串的單詞的時候一開始是↓  發現最后一個單詞沒法分割出來,后來增加一個條件后解決問題。

 1  vector<string>str;
 2         string st = "";
 3         for(int i = 0; i < s.length(); i++) {
 4             if(s[i] != ' ')
 5                 st += s[i];
 6             
 7             if(s[i] == ' ') {
 8                 str.push_back(st);
 9                 st = "";
10                 
11             }
12             
13         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM