【问题标题】:Palindrome function algorithm回文函数算法
【发布时间】:2013-04-07 14:46:27
【问题描述】:

有点像 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

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

【问题讨论】:

  • 你说错了,怎么错了?你有例外吗?错误的结果?如果有,基于什么测试数据?

标签: python string loops


【解决方案1】:

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

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

在您的版本中,您始终为带有len(s) &gt;= 1 的所有字符串返回True

【讨论】:

  • 在 Python 中太简单了 :)
  • 谢谢@Marcin,猜你是对的。函数对所有大于 1 的字符串返回 true。
  • 是的..我已经编辑了这个,因为我误解了这个问题 - 我想到了“可以构建回文的单词”(:
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多