您的位置:首页 > 其它

LeetCode---Reverse Words in a String

2015-11-23 20:26 309 查看
题目大意:给出一个由若干单词和空格组成吃的字符串,要求将其包含的所有单词的顺序倒转并且去掉冗余空格。

算法思想:

字符串中的字符可以看做是有空格和非空格组成的。当遍历字符串时如果遇见空格时此时判断是否是上个单词的结束,如果是将其迭代加入结果中,如果不是则继续遍历字符串,当遇见非空格符时将其拼接入单词并做标记。最后如果标记为真将最后一个单词加入结果中,然后去掉末尾的空格符。

代码如下:

class Solution {
public:
void reverseWords(string &s) {
if(s.length()==0) return ;

string temp,res="";
bool flag=false;
for(int i=0;i<s.length();++i){
if(s[i]==' '){
if(flag) {
temp+=' ';
res=temp+res;
temp.clear();
flag=false;
}
else
continue;
}
else{
temp+=s[i];
flag=true;
}
}
if(flag){
temp+=' ';
res=temp+res;
}
s=res.substr(0,res.size()-1);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: