您的位置:首页 > 其它

递归翻转字符串

2013-11-24 14:48 155 查看
记得之前面试有这道题,特么,当时用迭代做的,还自己为做的不错。

现在觉得自己太挫了,根本没意识到可以用递归来做。好吧,今天想了一下,其实这个问题完全符合递归的做法:

#include "stdio.h"
#include "string.h"

char* GetReverse(char*& pStr, int k, int len)
{
if (len == 0)
{
return pStr;
}
if (len==1)
{
return pStr;
}
char temp = pStr[k];
pStr[k] = pStr[k+len-1];
pStr[k+len-1] = temp;
return GetReverse(pStr, k+1,len-2);
}
char* RecvStr(char* pStr)
{
return GetReverse(pStr, 0, strlen(pStr));
}
int main()
{
char lTest[] = "program";
printf("%s \n",RecvStr(lTest));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: