回文函数算法

时间:2013-04-07 14:46:27

标签: python string loops

有点在python中的新手,开始依赖python如何使用字符串和迭代字符串。 曾经在一大堆所谓的代码'Palindrome'上工作过,你会看看哪个部分确实出错了吗?

def palindrome(s):
    if len(s) < 1:
        return True
    else:
        i = 0
        j = len(s) - 1
        r = s[::-1]
        print "s is %s" % s,
        print "r is %s" % r
        while s[j] == r[i] and j != 0:
            print "s[j] is %s" % s[j],
            print "; r[i] is %s" % r[i]
            i += 1
            j -= 1
        return True
    return False

我已经使用了所有这些打印语句来确保代码的位置。该程序应该比较一个字符串和它的反向定义它是否是一个回文。

2 个答案:

答案 0 :(得分:4)

下面你有一个不太复杂的解决方案:

def is_palindrome(s):
    return s == s[::-1]

在您的版本中,对于True

的所有字符串,您总是返回len(s) >= 1

答案 1 :(得分:1)

我可能会遗漏一些明显的东西,但这不应该足够吗?

def ispalindrome(s):
   return s == s[::-1]