2016-03-09 262 views
-1

我想检查传入函数的字符串是否是传入的第二个字符串的回文。Google将回文定义为字相同的拼写向前或向后。如何检查字符串是否是另一个字符串的回文

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


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

在上面的代码中,我试图检查,如果给定的字符串是等于第二串向前和向后尚未测试我给它的主返回false。任何想法什么我想念?

+2

'strA [:: 1]'与'strA'相同。你想'strA [:: - 1]' – vaultah

+1

什么是另一个回文的字符串?据我所知一个字符串是回文,如果它是相同的字符串向后 –

+0

可能重复的[检查字符串为回文](http://stackoverflow.com/questions/4138827/check-string-for-palindrome/) – goodguy5

回答

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] 
+0

谈论如何去除?也许 - '返回strA [:: - 1] == strB' – Muctadir

+1

这不完全是一回事。目前,它打印而不是退货。你确实让我想到了一些东西,尽管......看到我的编辑。 – zondo

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 
+1

你不需要'inputstring [:: - 1]'的括号。 –

+0

拉括号,谢谢! –

相关问题