0

有点像 python 的新手,开始学习 python 如何处理字符串和迭代字符串。曾经研究过一段所谓的“回文”代码,你会看看它到底是哪一部分出错了吗?

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

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

4

2 回答 2

4

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

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

在您的版本中,您总是返回True所有字符串len(s) >= 1

于 2013-04-07T14:51:15.227 回答
1

我可能遗漏了一些明显的东西,但这还不够吗?

def ispalindrome(s):
   return s == s[::-1]
于 2013-04-07T14:52:24.857 回答