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

これらすべての print ステートメントを使用して、コードがどこに行くのかを確認しました。このプログラムは、文字列とその反転を比較して、それが回文かどうかを定義することになっています。

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 に答える