题目
思路1
暴力法:定义一个辅助数组,将后两个和前n-2个先后存进辅助数组中,即可达到该结果,就是时空复杂度较大,此处不再写代码。
思路2
运用合理的逆置,即可。核心代码是两个数互换。 空间复杂度为O(1)。
#include<stdio.h>
#include<string.h>
char *Reverse(char *s,int l,int r){
char t;
while(l<r){
t=s[l];
s[l]=s[r];
s[r]=t;
l++;
r--;
}
}
int main(){
char s1[100];
int k=2;
gets(s1);
int len=strlen(s1);
Reverse(s1,0,len-1);
Reverse(s1,0,k-1);
Reverse(s1,k,len-1);
puts(s1);
return 0;
}