LeetCode problem 1: Reverse Words in a String

来源:互联网 发布:复杂网络引论 pdf 编辑:程序博客网 时间:2024/06/05 19:59

思路: 尽可能将元字符串的空格字符位置找到,采用两个索引变量i, j 指示相邻的空字符,如果| i -j | >= 2说明a[i]与a[j] 之间有正常字符,所以可以取为一个word存储下来。此外,将一个额外的空字符加到原字符串的末尾,可以将这设置为第一个空字符的位置(我们已知),类似于哨兵思想。

具体代码:

class Solution {public:    void reverseWords(string &s) {        string ret,temp;s += ' ';int lenght = s.length();int k = lenght-1;bool flag = 0;for(int i = lenght-2;i>=0;i--){if(s[i] == ' '){if(k - i <=1){flag = 0;}else{flag = 1;temp = s.substr(i+1,k - i);}k = i;}else if(i == 0){temp = s.substr(i,k-i+1);flag = 1;}//cout<<flag<<endl;if(flag){ret += temp;//ret += ' ';flag = 0;}}ret = ret.substr(0,ret.length()-1);s = ret;    }};

欢迎找出其中的bug。

0 0
原创粉丝点击