7. 反轉整數
描述
給定一個 32 位有符號整數,將整數中的數字進行反轉。
示例
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能存儲 32 位有符號整數,其數值范圍是 [?2^31, 2^31 ? 1]。根據這個假設,如果反轉后的整數溢出,則返回 0。
思路
這種反轉題早在學 C 的時候就碰到過,當時是不斷的相除得到數組后反向輸出,而現在使用 Python 必不可能再用這個方式。
Python 中的列表有自帶的反轉函數 reverse 和列表切片 x[::-1] 都可以使得列表反轉。
還需要注意得是要求輸入的數是 32 位有符號整數,有以下考慮:
- 反轉的時候需要記錄正負,最后還得保持正負數才行。
- 溢出的時候返回 0。
class Solution:def reverse(self, x):""":type x: int:rtype: int"""# 記錄x是正數還是負數sign = [1, -1][x < 0]# 反轉后還需要加上正負ret = sign * int(str(abs(x))[::-1])# 如果溢出返回0return ret if -(2**31) < ret < 2**31 - 1 else 0
GitHub地址:https://github.com/protea-ban/LeetCode