原题链接:Reverse Integer
先上代码:
class Solution:
# @param {integer} x
# @return {integer}
def reverse(self, x):
x = str(x)
if x[0] in ['+', '-']:
x = int(str(x[1:])[::-1]) if x[0] == '+' else -int(str(x[1:])[::-1])
else:
x = int(str(x)[::-1])
if (x > 2 ** 31 - 1) or (x < -2 ** 31):
x = 0
return x
说明:
核心解决方案是把传入的整型转换为字符串,然后反转字符串再转回整型。(点击查看反转字符串的方法)
注意一下最后的if判断,即if (x > 2 ** 31 - 1) or (x < -2 ** 31):
。之所以这样写是因为题目要求如果反转的数溢出,就返回0。然而对于Python来说,整型范围是无限大的,所以不会溢出(不准确但无须深究),因此我们要模拟一下溢出情况下的返回值。