码迷,mamicode.com
首页 > 其他好文 > 详细

557. 反转字符串中的单词 III

时间:2018-05-15 00:29:19      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:开始   输出   思路   col   nullptr   单词   bsp   iii   ons   

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 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         }

 

557. 反转字符串中的单词 III

标签:开始   输出   思路   col   nullptr   单词   bsp   iii   ons   

原文地址:https://www.cnblogs.com/jj81/p/9038674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!