题目描述
给你一个 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] - flag 用于判断输入的是否是负数
- 由于需要转为 int 类型判断数据范围是否溢出,则需要中途转为int类型,溢出则按照题目要求变为0。
- 若没有溢出,而且为负数,则需要加上负号,由于整数类型无法直接添加负号,只能先将其转化为字符串类型进行操作,然后再转为整数类型
def reverse(self, x: int) -> int:
x = str(x)
flag = 0
if x[0] == '-':
x = x[::-1]
a = 0
a = x[0:len(x) - 1]
a = int (a)
flag = 1
else:
a = 0
x = x[::-1]
a = int (x)
if a > 2147483647 or a < 4.6566128730774e-10:
a = 0
if flag == 1:
a = '-' + str(a)
a = int(a)
return a
|