給出一個(gè) 32 位的有符號(hào)整數(shù)缭黔,你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)耳贬。
- 示例 1:
輸入: 123
輸出: 321
- 示例 2:
輸入: -123
輸出: -321
- 示例 3:
輸入: 120
輸出: 21
注意:
假設(shè)我們的環(huán)境只能存儲(chǔ)得下 32 位的有符號(hào)整數(shù)糊治,則其數(shù)值范圍為 [?231 - 231 ? 1]膘婶。請(qǐng)根據(jù)這個(gè)假設(shè)侧漓,如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0间狂。
這里采用轉(zhuǎn)為字符串翻轉(zhuǎn)的方式:
現(xiàn)將
int
轉(zhuǎn)為str
,再進(jìn)行切片翻轉(zhuǎn)火架,然后判斷字符串是否以-
結(jié)尾鉴象,再將str
轉(zhuǎn)回int
,最后判斷一下結(jié)果是否溢出何鸡。
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x = str(x)[::-1]
if x.endswith('-'):
x = -int(x[:-1])
else:
x = int(x)
if x < -2**31 or x > 2**31-1:
return 0
return x