Leetcodeは日記を書きます:9.回文数(PYTHON)
整数が文数であるかどうかを判断します.回文数とは、正の順序(左から右へ)と逆の順序(右から左へ)が同じ整数です.例1:入力:121出力:true例2:入力:-121出力:false解釈:左から右へ-121.右から左に読むと121-.したがって、回文数ではありません.例3:入力:10出力:false解釈:右から左へ01.したがって、回文数ではありません.進級:整数を文字列に変換しないでこの問題を解決できますか?
正数が首尾と同じかどうかを個々に判断し,負数には明らかに負の記号が対称ではない.
68 ms、73%
さらに騒々しいのは、正反対が同じかどうかを直接判断することだ.
進級問題に答えて、文字列を使わないで、数学の方法:つまり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と判断すればよい
44 ms、98%
正数が首尾と同じかどうかを個々に判断し,負数には明らかに負の記号が対称ではない.
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%