07-整數反轉
阿新 • • 發佈:2021-08-31
題目:
給你一個 32 位的有符號整數 x ,返回將 x 中的數字部分反轉後的結果。
如果反轉後整數超過 32 位的有符號整數的範圍[−2^31, 2^31− 1] ,就返回 0。
示例:
輸入:x=-123
輸出:-321
程式碼:
Min=-2**31 Max=2**31-1 class Solution: # 普通方法 def reverse(self,x): tag=1 y=0 if x<0: tag=0 x=-x while x%10!=0 or x//10!=0: y=y*10+x%10 x=x//10 if tag==0: y=-y if Min>y or Max<y: return 0 return y # 優化解 def reverse2(self,x): y=abs(x) res=0 # 設定邊界 boundry=1<<31-1 if x>0 else 1<<31 while y!=0: res=res*10+y%10 y//=10 if res>boundry: return 0 return res if x>0 else -res solution=Solution() x=15934 y=solution.reverse2(x) print(y)