leetcode-541. Reverse String II

来源:互联网 发布:微创拔牙多少钱 知乎 编辑:程序博客网 时间:2024/05/17 08:54

考察点:string,边界脚码;
思路:这道题思路简单,关键是要bug free。尤其是在reverse函数里的边界判断时,应该先拿0这样的特殊边界条件测试一下,看是否正确,这样往往能够增加代码的正确率。
C++ 代码:

class Solution {public:    string reverseStr(string s, int k) {        if (k == 0)            return s;        int len = s.size();        for (int i=0; i<len; i+=2*k) {            reverse(s, i, k);        }        return s;    }    void reverse(string & s, int start, int k) {        if (start + k < s.size()) {            for (int i=start; i<start + k/2; i++) {                swap(s[i],s[start + k - (i - start)-1]);            }        } else {            int len = s.size() - start;            for (int i=start; i<start + len/2; i++) {                swap(s[i],s[s.size() - (i - start)-1]);            }        }    }};
0 0
原创粉丝点击