鱼C论坛

 找回密码
 立即注册
查看: 3674|回复: 7

用递归解决回文联的程序怎么解释,看不懂。帮忙解答,谢谢!

[复制链接]
发表于 2016-11-23 12:40:32 | 显示全部楼层 |阅读模式
1鱼币
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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-23 13:52:34 | 显示全部楼层
  1. def is_palindrome(n, start, end):     #定义回文贴的方法,有三个入参(字符串的长度,字符串左边字符的索引,字符串右边字符的索引)                                                   
  2.         if start > end:               #如果字符左边字符索引>右边字符索引(说明一半的字符已经比较过了)
  3.                 return 1              #返回1
  4.         else:                         #如果左边索引值<右边索引值说明还没有对比完,如果第一个字符和最后一个字符相等则使用递归函数比较第二个字符和倒数第二个字符,否则返回0
  5.                 return is_palindrome(n, start+1, end-1) if n[start] == n[end] else 0
  6.         
  7. string = input('请输入一串字符串:')  #输入一个字符串
  8. length = len(string)-1                #确定字符串的长度(是为了确定end值)

  9. if is_palindrome(string, 0, length):  #如果返回的是1,说明是回文贴
  10.         print('"%s"是回文字符串!' % string)
  11. else:                                  #返回0说明不是回文贴
  12.         print('"%s"不是回文字符串!' % string)
复制代码

评分

参与人数 2荣誉 +1 鱼币 +5 收起 理由
kkon + 1
SkyBurner + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-23 15:34:40 | 显示全部楼层

你解释的非常清楚,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-28 10:01:14 | 显示全部楼层
2楼棒棒的,过来学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-29 20:59:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-29 02:35:38 | 显示全部楼层
二楼解释的很棒,我补充一下。
‘’return is_palindrome(n, start+1, end-1) if n[start] == n[end] else 0‘’
上面的是三元操作符,语法:x if 条件 else y,表示else后if条件成立x为true,否则y为true。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-5 21:16:19 | 显示全部楼层
第1行注释n应该不是指的字符串长度把,而是单纯指的这个字符串本身吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-14 10:21:34 | 显示全部楼层
一下没看出来是这个3元操作符,解释的很棒,赞一个!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 09:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表