长沙网站搜索排名seo推广效果
思路:
关键是判断反转的右边界,
①当剩余字符数<k,是反转当前所有字符,右边界就是right=len-1,不可以超过len-1,会越界;
②当剩余字符数>k且<2k,反转k个字符,右边界就是right=left+k-1,
③当剩余字符数>=2k,也是反转k个字符,右边界是right=left+k-1,
可以看到,②和③的情况,右边界是一样的,也就是说我们只需要判断当前剩余字符数是否够k个就可以了,2k的情况我们不需要额外判断
char* reverseStr(char* s, int k)
{//int len=strlen(s);for(int i=0;i<len;i+=2*k){//翻转int left=i;int right=(left+k-1<len)?(left+k-1):(len-1);while(left<right){char tmp=s[left];s[left]=s[right];s[right]=tmp;left++;right--;}}return s;
}