您的位置:首页 > 其它

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 = "
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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: