递归翻转字符串
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));
}
现在觉得自己太挫了,根本没意识到可以用递归来做。好吧,今天想了一下,其实这个问题完全符合递归的做法:
#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));
}
相关文章推荐
- C语言递归实现字符串翻转
- reverse_string(char *string)递归实现字符串翻转 和对“++”操作的一些分析
- 递归-字符串翻转
- 递归实现字符串翻转
- 递归实现字符串翻转
- 递归实现字符串翻转
- 一般人不容易想到的使用递归实现字符串的翻转。
- PHP实现字符串翻转功能的方法【递归与循环算法】
- 字符串的翻转(递归)
- 由一个翻转字符串程序看递归
- 递归系列2(字符串翻转,12345翻转)
- 递归字符串翻转"abc"->"cba"
- 递归入门(六) ---- 字符串翻转
- 用递归方式翻转字符串
- 递归系列2(字符串翻转,12345翻转)
- 用递归实现字符串翻转
- 递归翻转一个字符串
- 递归--阶乘/斐波那契数列/判断回文字符串/字符串翻转
- C/C++:递归使用:使用递归反向写文件(例子)以及字符串翻转输出
- PHP 实现字符串翻转(包含中文汉字)