題目要求不能開額外的數組,空間不允許
要求完成以下結果,比如輸入abcdefgh 給定n為3則使得字符數組順序變為defghabc
遞歸實現如下:
#include<stdio.h>
#include<string.h>


void swap(char *s1 ,int ls1, char *s2,int ls2)
{
if(ls1 == 0 || ls2 == 0) return;

if(ls1 == ls2)
{

for(int i = 0 ; i < ls1 ; i++ )
{
s1[i] = s1[i] + s2[i];
s2[i] = s1[i] - s2[i];
s1[i] = s1[i] - s2[i];
}
}

else if(ls1 < ls2)
{
swap(s1,ls1,s2,ls1);
swap(s2,ls1,s2+ls1,ls2-ls1);
}

else
{
swap(s1+ls1-ls2,ls2,s2,ls2);
swap(s1,ls1-ls2,s1+ls1-ls2,ls2);
}
}

int main()
{
char s[100];
scanf("%s",s);
int n ;
scanf("%d",&n);
int len = strlen(s);
swap(&s[0],n,&s[n],len-n);
printf("%s\n",s);
return 0;
}
