Leetcodeは日記を書きます:9.回文数(PYTHON)


整数が文数であるかどうかを判断します.回文数とは、正の順序(左から右へ)と逆の順序(右から左へ)が同じ整数です.例1:入力:121出力:true例2:入力:-121出力:false解釈:左から右へ-121.右から左に読むと121-.したがって、回文数ではありません.例3:入力:10出力:false解釈:右から左へ01.したがって、回文数ではありません.進級:整数を文字列に変換しないでこの問題を解決できますか?
正数が首尾と同じかどうかを個々に判断し,負数には明らかに負の記号が対称ではない.
	if x<0:return False
        s=str(x)
        i=0
        j=len(s)-1
        while i<j:
            if s[i]!=s[j]:
                return False
            i+=1
            j-=1
        return True

68 ms、73%
さらに騒々しいのは、正反対が同じかどうかを直接判断することだ.
 return True if str(x)==str(x)[::-1] else False

進級問題に答えて、文字列を使わないで、数学の方法:つまり100、10のこのような10で除去することができて、明らかに1221に対して、私達は12=21を判断しますか?x:1221/10=122 hui:0+1221%10=1、末位を得る
x:122/10=12 hui:1*10+122%10=10+2=12、このときxはhuiより大きくなく、真ん中まで遍歴し、12=12
x=121であれば最後のx=1,hui=12であればhui/10=xと判断すればよい
        if x<0 or (x%10==0 and x!=0):
            return False
        hui=0
        while x>hui:
            hui=hui*10+(x%10)#     x   *10+  x   ,    
            x=x/10#
        return x==hui or hui/10==x#  bool  

44 ms、98%