反转字符串&&双指针

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

如果剩余字符少于 k 个,则将剩余字符全部反转。

如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

void reverse(char* s, int left, int right)

{

    right--;

    while(left<right)

    {

        char tmp=s[left];

        s[left]=s[right];

        s[right]=tmp;

        left++;

        right--;

    }

}

int min(int a, int b)

{

    return a<b?a:b;

}

char* reverseStr(char* s, int k) {

    int size=strlen(s);

    for(int i=0;i<size;i+=2*k)

    {

        reverse(s,i,min(i+k,size));

    }

    return s;

}

注意:


反转字符串(基础)


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容