这道题一开始看错了题目,以为只是把前2K个的k个字符反转就可以,后来wa了才发现是要把每一个2k个字符的前k个字符反转,改正了代码。
class Solution {
public:
void inv(string &s, int t, int k){
int med = (k-t)/2 + t;
for(int i = t; i <= med; i++)
{
int j = k-(i-t);
char tmp;
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
}
}
string reverseStr(string s, int k) {
int begin = 0, end;
while(begin < s.size()){
end = begin+2*k-1;
if(begin+k-1 < s.size())
inv(s, begin, begin+k-1);
else
inv(s, begin, s.size()-1);
begin += 2*k;
}
return s;
}
};
本文介绍了一种字符串处理算法,重点在于实现字符串中每2k个字符的前k个字符的反转操作。通过具体实例展示了如何纠正初始理解错误并给出正确的代码实现。

837

被折叠的 条评论
为什么被折叠?



