您的位置:首页 > 其它

LeetCode Reverse Words in a String 将串中的字翻转

2014-11-27 21:52 369 查看
class Solution {
public:
void reverseWords(string &s) {
string end="",tem="";
char *p=&s[0];
while(*p!='\0'){
while(*p==' ')                //过滤多余的空格,针对串头
p++;
while(*p!=' '&&*p!='\0'){    //积累一个单词,存于临时串
tem=tem+*p;
p++;
}
while(*p==' ')                //过滤多余的空格,针对串尾
p++;
if(*p!='\0')        //最后一个字不用加空格
tem=' '+tem;
end=tem+end;
tem="";            //临时字符串清空
}
s=end;
}
};


题意:将字符串中的字按反序排列,每个字中间有一个空格,串前和串尾无空格。字的顺序不用改变,改变的是字在串中的顺序。

思路:过滤串的前面和后面的空格,用指针从前往后扫, 再用一个临时串保存字,满一个字的时候就添加在将最终的串的前面。扫完该串就将最终的串赋给s。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: