String:557. Reverse Words in a String III

来源:互联网 发布:淘宝收获地址怎么改 编辑:程序博客网 时间:2024/05/21 05:08

    思路很简单,遍历字符串,碰到空格就翻转这之前的一个字符。这是我写的:

class Solution {public:    string reverseWords(string s) {        int cur = 0;        for(int i = 0; i < s.size(); ++i)        {            if(s[i] == ' ')            {                reverse(s.begin() + cur, s.begin() + i);                cur = i + 1;            }        }        if(cur < s.size())            reverse(s.begin() + cur, s.end());        return s;    }};
    还看到有一种写法,不用迭代器。之前一直不知道怎么不用迭代器翻转字符串,现在知道了:

class Solution {public:    string reverseWords(string s) {        size_t front = 0;        for(int i = 0; i <= s.length(); ++i){            if(i == s.length() || s[i] == ' '){                reverse(&s[front], &s[i]);                front = i + 1;            }        }        return s;    }};


原创粉丝点击