鱼C论坛

 找回密码
 立即注册
查看: 3561|回复: 5

[已解决]23.24回文字符串递归解法表达式怎么理解

[复制链接]
发表于 2022-10-26 22:57:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def is_palindrome(n, start, end):
        if start > end:
                return 1    # 这里为什么  返回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)

就返回  1  那里不懂。。。
最佳答案
2022-10-26 23:04:53
这个字符串判断到最后的时候如果 start == end , 那就是
is_palindrome(n, start + 1, end - 1) 但是这时候传进的 start 就等于 end
因此在下一层中 start 就 大于 end
你可以想想 , 只有每一对字符都判断相等之后才会到 start == end -> start + 1 > end - 1
这一步 , 不然他们早就被返回 0 了
0 是 False  1 是 True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-26 23:02:34 | 显示全部楼层
python数据类型基础:非零的数字,都是True。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-26 23:04:53 | 显示全部楼层    本楼为最佳答案   
这个字符串判断到最后的时候如果 start == end , 那就是
is_palindrome(n, start + 1, end - 1) 但是这时候传进的 start 就等于 end
因此在下一层中 start 就 大于 end
你可以想想 , 只有每一对字符都判断相等之后才会到 start == end -> start + 1 > end - 1
这一步 , 不然他们早就被返回 0 了
0 是 False  1 是 True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-26 23:13:02 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-26 23:19 编辑
def is_palindrome(n, start, end):
        这个函数每次递归需要比较字符串首尾索引为 start 和 end 两个字符是否相等,如果相等,将 start、end 向字符串 n 的中心方向各减少 1 个字符距离,继续递归,如果不相等,就立即返回 0 值。这样,当字符串首尾索引出现 start > end 的时候,说明字符串中的所有字符对的比较已经结束,而且,全部相等,据此,即可以判断,字符串 n 就是一个回文字符串。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-26 23:13:28 | 显示全部楼层
柿子饼同学 发表于 2022-10-26 23:04
这个字符串判断到最后的时候如果 start == end , 那就是
is_palindrome(n, start + 1, end - 1) 但是这时 ...

谢谢   懂了  意思就是  要到  start > end 这一步的前提是前面全部是 true 所以才返回1    不然就是false   自己逻辑思维还要加强啊。。  谢谢。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-26 23:14:30 | 显示全部楼层
jackz007 发表于 2022-10-26 23:13
这个函数每次递归需要比较字符串首尾索引为 start 和 end 两个字符是否相等,如果相等就继续递归 ...

谢谢。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 21:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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