请帮忙详解以下 Python 递归回文程序

发布网友 发布时间:2022-04-23 15:48

我来回答

3个回答

热心网友 时间:2022-04-18 07:06

以下我以“//”来表示注释开始
def isPalindrome(s)://函数申明,函数名为isPalindrome,参数为s
"""Return True if s is a palindrome and False otherwise""" //函数的说明,相当于函数简介
#如果是回文(palindrome),返回True;否则返回False //这是python的注释
if len(s) <=1: return True //如果s的长度小于或等于1,则返回True
else: return s[0] == s[-1] and isPalindrome(s[1:-1]) //否则计算s的开头1位字符和末尾1位字符是否相等(结果1),并计算s的子串(从第2个字符开始到倒数第2个字符结束,包含第2个字符和倒数第2个字符)是否是回文串(结果2),把这2个结果做逻辑与返回

你的补充里的问题:
这个是python的元组的语法,假设元组a,则a[s:e]表示的是a的子元组(如果把a看作有顺序的集合,那么a[s:e]就表示a的子集,并且开始元素是下标为s的元素,结束元素的下标是e,如果s,e小于0,则表示从末尾开始计数得到的下标,比如s[1:-2]就表示从正数下标为1,一直到从末尾数下标为2之间的结果)

热心网友 时间:2022-04-18 08:24

python索引的切片语法,
s[1:-1] 是指取出字符串索引1和到索引-1之间的字符(包括索引1位置的字符,但不包括索引-1位置的字符),如果后面那个索引位置再开始索引的位置之前,则返回空字符串
python语法中可以使用负数索引,-1表示倒数第一个,-2表示倒数第二个。
python中的字符串、列表、元组都可以使用索引切片语法
比如: list=['a','b','c','d','e','f']
list[2:4]=['c','d','e']
list[2:-1]=['c','d','e']

热心网友 时间:2022-04-18 09:59

def isPalindrome(a):
l = len(a)
if l == 1:
return True
else:
half = l / 2
i = 0
while i < half:
if a[i] != a[-i-1]:
break
i += 1
if i < half - 1:
return False
else:
return True

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com