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
时,你去掉了两个字符。谢谢你的帮助!我早该看到的。我会等一会儿,以防有人在回答,然后我会接受你的。