标签:style blog http color os strong
Reverse Words in a String
Given an input string, reverse the string word by word.
For example,
Given s = "the
sky is blue
",
return "blue
is sky the
".
1)用两个指针从前到后扫描,分开单词,先对每个单词进行逆转,最后再对整个字符串逆转;
比如题目中给的例子:先对每个单词进行逆转得到的结果:"eht yks si eulb",然后再整体逆转即可得到"blue is sky the"。
2)根据空格切分字符串,将切分得到的单词存到vector中,然后将vector中的单词从末尾开始输出即可。
在衡量了两种方法之后,觉得第二种方法代码更加简洁方便,便选择了第二种思路。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 |
void
reverseWords(string &s) { int
i=0,j=0; int
len = s.length(); vector<string> splitResult; while (i<len) { if (s[i]== ‘ ‘ ) i++; else { j=i+1; while (j<=len) { if (s[j]== ‘ ‘ ||j==len) { string tempStr = s.substr(i,j-i); splitResult.push_back(tempStr); i=j+1; break ; } else j++; } } } int
size = splitResult.size(); if (size>0) { s= "" ; for (i=size-1;i>0;i--) s+=splitResult[i]+ " " ; s+=splitResult[i]; } else { s= "" ; } } |
注意的地方:我一开始提交就提示错误,要考虑到空字符串以及只有空格组成的字符串,因此要在最后作一个判断,如果splitResult为空,则直接把s赋值为""即可。
LeetCode:Reverse Words in a String,码迷,mamicode.com
LeetCode:Reverse Words in a String
标签:style blog http color os strong
原文地址:http://www.cnblogs.com/dolphin0520/p/3700019.html