給出一個 32 位的有符號整數,你須要將這個整數中每位上的數字進行反轉。ide
示例 1:spa
輸入: 123
輸出: 321 code
示例 2:blog
輸入: -123
輸出: -321字符串
示例 3:數學
輸入: 120
輸出: 21io
★ 注意:event
假設咱們的環境只能存儲得下 32 位的有符號整數,則其數值範圍爲 [−231, 231 − 1]。請根據這個假設,若是反轉後整數溢出那麼就返回 0。class
1 class Solution: 2 def intReverse(self, x): 3 str_x = str(x) 4 if str_x[0] != '-': 5 x = int(str_x[::-1]) 6 else: 7 x = -int(str_x[:0:-1]) # [i:j:-1], j是取不到的,當i和j不給出時,i表明-1,j表明-len(a)-1, 8 # 因此str_x[:0:-1]也能夠寫成str_x[:len(str_x):-1] 9 10 # 數值範圍[-2^31, 2^31-1]————>用二進制表示:[-(1<<31), (1<<31)-1] 11 return x if -(1<<31) < x < (1<<31)-1 else 0
1 class Solution: 2 def intReverse(self, x): 3 y, rev = abs(x), 0 4 # 數值範圍[-2^31, 2^31-1]————>用二進制表示:[-(1<<31), (1<<31)-1] 5 boundary = (1<<31)-1 if x>0 else 1<<31 6 while y != 0: 7 rev = rev*10 + y%10 8 if rev > boundary: 9 return 0 10 else: 11 y //= 10 12 return rev if x > 0 else -rev