|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #回文联:上海自来水来自上海,递归版本
- #思路:利用递归每次索引前后两个字符进行对比,当start>end的时候,也正是首尾下标碰面的时候,即作为结束递归条件
- def is_palindrome(n,start,end):
- if start > end:
- return 1
- else:
- return is_palindrome(n,start+1,end-1) if n[start] == n[end] else 0
- string = input('请输入一串字符串:')
- length = len(string)-1
- if is_palindrome(string,0,length):
- print('"%s"是回文字符串!'%string)
- else:
- print('"%s"不是回文字符串!'%string)
复制代码
请问:请问为什么start>end时,返回1,没明白,能不能解释一下这段代码的含义?一点没看懂
既然你都知道start和end是索引开始和结束,那n就是对应的字符串呀
调用函数的时候,参数写的位置,就对应定义函数时那个位置上的参数
def is_palindrome(n,start,end):
is_palindrome(string,0,length)
上面的 第一个是定义函数,第二个是调用函数
那么使用这个函数的时候就会把string的值放到n中,0放到start中,length放到end中,然后再去做对应的一些列计算
|
|