Palindrome与递归

时间:2014-04-13 21:48:00

标签: 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)
  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

我正在尝试不使用任何导入模块等。只是直接递归。

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

我认为你的索引有点过时了。不应该是

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