每日一题
反转字符串——II
题目链接
思路
实现代码
//对字符串s的i到k区间的字符进行反转
void S_reverseStr(char * s, int i, int k)
{
int left = i, right = k - 1;
while(left <= right)
{
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
return;
}
char * reverseStr(char * s, int k){
for(int i = 0; i < strlen(s); i+=2 * k)
{
//如果剩余的字符大于等于k,则反转前k个字符(包含了每2k个字符反转前k个字符的情况)
if(i + k <= strlen(s))
S_reverseStr(s,i,i+k);
//如果剩余的字符小于k,则全部反转
else
S_reverseStr(s,i,strlen(s));
}
return s;
}