一、题目描述
给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
-231 <= x <= 231 - 1
二、解题过程
1、第一次尝试
1.1 代码如下
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
x_text = str(x)
new_text = ''
if x >= 0:
n_len = len(x_text)
for i in range(1, n_len + 1):
new_text += x_text[-i]
if int(new_text) <= 2 ** 31:
return int(new_text)
else:
return 0
else:
n_len = len(x_text) - 1
for i in range(1, n_len + 1):
new_text += x_text[-i]
if int(new_text) <= 2 ** 31:
return int("-" + new_text)
else:
return 0
if __name__ == '__main__':
result = Solution().reverse(x=-321)
print(result)
1.2 运行情况