1、请写出一个逆序的递归算法及非递归算法.
递归算法:
char * Reverse(char *s,int left,int right)
{
if(left>=right)
{
return s;
}
char t = s[left];
s[left]=s[right];
s[right] = t;
Reverse(s,left+1,right-1);
}
非递归算法:
char * Reverse(char *s,int left,int right)
{
while(left<right)
{
char t = s[left];
s[left++]=s[right];
s[righ--t] = t;
}
return s;
}
然后调用的话,直接
Reverse(s,0,strlen(s));
即可。