如何检查字符串是否是另一个字符串的回文

时间:2016-03-09 17:05:49

标签: python string

我正在尝试检查传入函数的字符串是否是传入的第二个字符串的回文.Google将回文定义为拼写为向前或向后的单词。

def palindrome(strA, strB):
  if (strA == strB and strA[::1] == strB):
    print "true"
  else:
    print "false"


if __name__ == '__main__':
  palindrome("sirap", "paris")

在上面的代码中,我试图检查给定的字符串是否等于第二个字符串向前和向后但是我在main中给它的测试返回false。关于什么我失踪的任何想法?

2 个答案:

答案 0 :(得分:4)

您检查'sirap'是否与'paris'相同,并检查反向'sirap'是否与'paris'相同。您if中的内容太多了:

if strA[::-1] == strB:
    print "true"
else:
    print "false"

如果你通过了回文以及它的相反,那么工作的是什么。例如,palindrome("stats", "stats")会打印"true",但我不认为这是您的想法。您还会注意到我使用的是strA[::-1]而不是strA[::1]。这是因为strA[::1]从头开始并结束,但你想要倒退,所以你应该使用-1

你甚至可以在一行中完成:

print ("false", "true")[str[::-1] == strB]

答案 1 :(得分:1)

我使用“100个项目”进行了类似的测试来学习python(对于学习任何语言很有用)

你可以这样做,然后运行脚本。为此我只是对我写的原始回文脚本做了一些修改。

print "This will check if its a palindrome"
inputstring = raw_input("String1: ")
inputstring2 = raw_input("String2: ")
inputstring = inputstring.lower()
inputstring2 = inputstring.lower()
revstring = inputstring[::-1] #Reverses the string

if revstring == inputstring2:
    print "Yes: " + revstring
else:
    print "No: " + revstring