0

回文を定義しようとしています。これは私がこれまでに持っているものですが、次のことはわかりません。誰かが私を助けてくれます。

def palindrome(x):

    if x % 2==0:
        index1=0
        index2=0
        aString=str(x)
        number=len(aString)
        index1=number / 2
        index2=number / 2 -1
    else:
        index1=0
        index2=0
        aString=str(aString)
        number=len(aString)
        index1=number / 2 +1
        index2=number / 2 -1
4

3 に答える 3

2

次のようなことを試すことができます:

sampleString[::-1] == sampleString
于 2013-02-28T04:05:58.207 に答える
1

これを試して:

def palindrone(x):
    return x == x[::-1]

例えば:

>>palindrone("dad")
True
于 2013-02-28T04:07:36.620 に答える
1

単語/文字列が回文であるかどうかを確認するには、これで十分ですが、他の人が指摘しているように、メモリを消費するソリューションです。

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

数値が回文であるかどうかを確認するには、いくつかの解決策があります (私のリストは決して網羅的なものではありません)。

import math

def ispal(n):
    return str(n) == str(n)[::-1]

def ispal2(n):
    digits = math.floor(math.log10(n) + 1)
    for ex in range(1, math.ceil(digits/2)):
        leftdigit = math.floor(n / 10**(digits - ex)) % 10
        rightdigit = math.floor(n / 10**(ex - 1)) % 10
        if not(leftdigit == rightdigit):
            return False

    return True
于 2013-02-28T04:10:27.113 に答える