leetcode-541. Reverse String II

xiaoxiao2021-02-27  538

考察点: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]); } } } };
转载请注明原文地址: https://www.6miu.com/read-1519.html

最新回复(0)