3.反轉整數-leetcode 007(python)
阿新 • • 發佈:2018-12-11
- 題目描述
給定一個 32 位有符號整數,將整數中的數字進行反轉。
- 示例1
輸入: 123 輸出: 321
- 示例2
輸入: -123 輸出: -321
- 示例3
輸入: 120 輸出: 21
- 注意
假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0。
- 解決方案
使用分片操作[ : : -1] 翻轉列表或字串
- 程式碼一
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ l = list(str(x)) n = len(l) #尋找最靠後的不是0的數字 for i in range(n-1,0,-1): if l[i] != '0': l = l[:i+1] break #如果是負數的話,反轉之後要加上符號 if l[0] == '-': l = l[:0:-1] l.insert(0,'-') else: l = l[::-1] x = int(''.join(l)) #check the number if x<2147483648 and x >-2147483648: return x else: return 0
- 程式碼二
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ if x > 0: t_str = str(x)[::-1] t = int(t_str) else: t_str = str(-x)[::-1] t = -int(t_str) if t< 2147483648 and t >-2147483648: return t else: return 0