leetcode-Reverse Words in a String
2014-09-25 12:24
176 查看
Given an input string, reverse the string word by word.
For example,
Given s = "
return "
分析;先翻转全部字符,再按单词翻转,最后去掉多余的空格
class Solution {
public:
void reverseWords(string &s) {
int n = s.length();
reverse(s.begin(),s.end());
vector<int> v;
v.push_back(-1);
for(int i = 0; i < n; i++)
{
if(s[i] == ' ')
v.push_back(i);
}
v.push_back(n);
int m = v.size();
for(int i = 0; i < m-1; i++)
{
reverse(s.begin()+v[i]+1, s.begin()+v[i+1]);
}
string s1;
for(int i = 0; i < n; i++)
{
if(s[i] != ' ')
s1 += s[i];
else if(s1 !="" && i != n-1 && s[i+1] !=' ')
s1 += s[i];
}
s = s1;
}
};
For example,
Given s = "
the sky is blue",
return "
blue is sky the".
分析;先翻转全部字符,再按单词翻转,最后去掉多余的空格
class Solution {
public:
void reverseWords(string &s) {
int n = s.length();
reverse(s.begin(),s.end());
vector<int> v;
v.push_back(-1);
for(int i = 0; i < n; i++)
{
if(s[i] == ' ')
v.push_back(i);
}
v.push_back(n);
int m = v.size();
for(int i = 0; i < m-1; i++)
{
reverse(s.begin()+v[i]+1, s.begin()+v[i+1]);
}
string s1;
for(int i = 0; i < n; i++)
{
if(s[i] != ' ')
s1 += s[i];
else if(s1 !="" && i != n-1 && s[i+1] !=' ')
s1 += s[i];
}
s = s1;
}
};
相关文章推荐
- Leetcode 第151题 最新题解 Reverse Words in a String
- leetcode JAVA Reverse Words in a String 难度系数2-3?最新题151
- LeetCode(151)Reverse Words in a String
- Leetcode: Reverse Words in a String
- LeetCode Reverse Words in a String
- 【LeetCode with Python】 Reverse Words in a String
- [LeetCode]Reverse Words in a String
- leetcode Reverse Words in a String
- [leetcode]Reverse Words in a String
- Leetcode_Reverse-Words-in-a-String
- LeetCode | Reverse Words in a String
- Reverse Words in a String (LeetCode)
- [Leetcode Solution] Reverse Words in a String
- LeetCode151:Reverse Words in a String
- 【LeetCode】Reverse Words in a String
- [leetCode]Reverse Words in a String
- leetcode - Reverse Words in a String
- [LeetCode] Reverse Words in a String
- 【LeetCode】Reverse Words in a String
- 【LeetCode】Reverse Words in a String