python中的回文检查器,超出范围索引的解决方法

时间:2015-10-28 21:00:57

标签: python python-3.x

您好我正在尝试使该程序无需在python 3中使用反向或排序功能。它只是应该检查回文。我遇到的问题是,每次运行它时,我都会得到一个超出范围的索引。有办法解决这个问题吗?

def is_palindrome(word):
    if len(word) <= 1:
        return True
    else:
        left = 0
        right = len(word) - 1
        while left < right:
            if word[left] == word[right]:
                left += 1
                right += 1
            else:
                return False
        return True

is_palindrome("mom")
is_palindrome("root")
is_palindrome("racecar")

2 个答案:

答案 0 :(得分:2)

public class Template { public string Name { get; set; } public string RuleName { get; set; } public Dictionary<string,Zone> Zones { get; set; } } 应为right += 1

答案 1 :(得分:0)

你可以更简洁地写一下。

>>> def is_palin(w):
...     return len(w) <= 1 or (w[0] == w[-1] and is_palin(w[1:-1]))              
... 
>>> is_palin("xax")
True
>>> is_palin("xaax")
True
>>> is_palin("xaab")
False