|
|
发表于 2021-2-15 22:39:42
|
显示全部楼层
本楼为最佳答案
本帖最后由 jackz007 于 2021-2-15 22:44 编辑
- def palindrome(string):
- length = len(string) # length = 字符串 string 的长度
- last = length-1 # last 被初始化为指向 string 的最后一个字符
- length //= 2 # 循环次数 = string 长度的一半,因为每次比较 string 中的 2 个字符
- flag = 1 # 检查前,先假定 string 就是回文联,然后,在后面的循环中尽量予以否定
- for each in range(length): # 开始循环,下标 each 的变化范围为: 0 ~ len(string) // 2 - 1
- if string[each] != string[last]: # 字符串首尾对应字符进行比较,如果不相等
- flag = 0 # 置 flag = 0,前面一开始的假设在这里被推翻
- last -= 1 # 字符串尾部指针向字符串开头的方向步进一个字符,准备进行下一对字符的比较
- if flag == 1: # 如果循环结束 flag 还是 1,那就是说,字符串所有的首尾字符对确实相等
- return 1 # string 真的就是回文联
- else: # 否则,flag = 0
- return 0 # 既然鸡蛋中被挑出了骨头,那么,string 自然就不是回文联
复制代码 |
|