递归实现字符串反转
2017-05-19 22:29
555 查看
递归的定义:函数调用自身的运算。
例如:下面代码均以Python为例
def f(n):
...
f(n-1)
想要使用递归解决问题必须弄明白两点:
1. 如何将问题分成小的部分,每部分可以使用函数来解决,然后再把问题“重新组合”。
2. 确定函数的递归调用应该在何时结束,什么时候递归“触底”。
下面使用递归的方法实现字符串反转:
不妨将字符串反转的函数定义为reverse(str);
1. 考虑字符串反转的基本情况——长度为1的字符串的反转,反转结果就是字符串本身。
2. 考虑一般情况——长度大于等于2的字符串,这时候可以将字符串分成两部分——首字符和剩余字符。那么如果剩下的字符串进行了反转的话,就只需要将首字符添加到剩余字符串反转的后面。为了实现剩余字符串的反转我们可以递归的调用reverse()函数(传入的参数为剩余字符串)。递归调用的标志是剩余字符串为单个字符。
完整的Python代码如下:
例如:下面代码均以Python为例
def f(n):
...
f(n-1)
想要使用递归解决问题必须弄明白两点:
1. 如何将问题分成小的部分,每部分可以使用函数来解决,然后再把问题“重新组合”。
2. 确定函数的递归调用应该在何时结束,什么时候递归“触底”。
下面使用递归的方法实现字符串反转:
不妨将字符串反转的函数定义为reverse(str);
1. 考虑字符串反转的基本情况——长度为1的字符串的反转,反转结果就是字符串本身。
2. 考虑一般情况——长度大于等于2的字符串,这时候可以将字符串分成两部分——首字符和剩余字符。那么如果剩下的字符串进行了反转的话,就只需要将首字符添加到剩余字符串反转的后面。为了实现剩余字符串的反转我们可以递归的调用reverse()函数(传入的参数为剩余字符串)。递归调用的标志是剩余字符串为单个字符。
完整的Python代码如下:
相关文章推荐
- 使用C/C++实现对字符串的反转(递归和非递归)
- 每天一个JavaScript实例-递归实现反转数组字符串
- 递归实现字符串反转
- 递归实现字符串反转char* reverse(char* str)合集
- c语言递归实现字符串反转
- 递归思想,实现字符串反转
- 使用递归实现字符串反转
- 使用递归实现字符串的反转
- 每天一个JavaScript实例-递归实现反转数组字符串
- rever_string()函数(递归实现)即递归实现字符串反转
- 用递归思想实现字符串反转
- 一些常用算法[数组全排列算法,单链表反转(递归实现),字符串反转,桶排序]
- 一个JavaScript递归实现反转数组字符串的实例
- (C语言)递归实现字符串反转
- C语言中常用的字符串操作(子串分割、替换、去前后空格、递归实现字符串反转)
- 使用递归实现字符串反转
- 递归实现字符串反转
- C语言递归和非递归实现字符串反转
- 关于递归实现字符串反转,没想到字符随机写入操作,不new就不行?
- 递归实现字符串字符反转