2016-03-09 264 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

拉括號,謝謝! –

相關問題