Python 递归回文
我正试图制作一个更高级的回文,如文档字符串所示。但是我不能让它工作。我走对了吗?这就是我到目前为止所做的:Python 递归回文,python,recursion,Python,Recursion,我正试图制作一个更高级的回文,如文档字符串所示。但是我不能让它工作。我走对了吗?这就是我到目前为止所做的: def pal_length(s: str, n: int) -> bool: '''Return True iff s has a palindrome of length exactly n. >>> pal_length('abclevel', 5) True >>> pal_length('level', 2) Fal
def pal_length(s: str, n: int) -> bool:
'''Return True iff s has a palindrome of length exactly n.
>>> pal_length('abclevel', 5)
True
>>> pal_length('level', 2)
False
'''
if not s:
return True
else:
index = 0
while index < len(s):
if s[index] == s[index+n]:
return pal_length(s[index+1:index+n-1],n-1)
index += 1
return False
def pal_长度(s:str,n:int)->bool:
''Return True iff s的回文长度正好是n。
>>>pal_长度('abclevel',5)
真的
>>>pal_长度(“级别”,2)
假的
'''
如果不是,则:
返回真值
其他:
索引=0
当指数
我尽量不使用任何导入模块等,只是直接递归
感谢您的帮助。谢谢。我觉得你的索引有点不对劲。难道不是吗
index = 0
while index < len(s) - n + 1:
if s[index] == s[index+n-1]:
return pal_length(s[index+1:index+n-1], n-2)
index += 1
return False
index=0
而指数
@Christan你在说什么?@Christian请快速查看,看来你的小补丁解决了这个问题。但是为什么它是-2而不是-1?@Mac:因为当分支到下一个递归level=>eve
时,你去掉了两个字符。谢谢你的帮助!我早该看到的。我会等一会儿,以防有人在回答,然后我会接受你的。