leetcode7.整数反转

发布于 2021-04-17 02:25 ,所属分类:知识学习综合资讯


题目描述

题目描述

给一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。


如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。


假设环境不允许存储 64 位整数(有符号或无符号)。




示例

输入:x = 123输出:321
输入:x = -123输出:-321
输入:x = 120输出:21
输入:x = 0输出:0

(左右滑动查看完整内容)




提示

  • -2**31<= x <= 2**31- 1


  • 难度:简单

  • 标签:数学





分析和题解

分析

1.先判断数字是否为0,为0直接返回0,就不需要进行后续的操作了;


2.数字不为0时,将int转换为str进行反转,负数只反转负号后面的内容;


3.反转后再转换成int,str转换成int 会自动把前面的0去掉,所以不用特殊处理了;


4.最后判断反转后的数字是否超过 32 位的有符号整数的范围,如果超过返回0,没超过就返回反转后的数字。




题解

class Solution:  def reverse(self, x: int) -> int:    if x == 0: return 0    elif x > 0:      res_str = str(x)[::-1]    else:      res_str = f'-{str(x)[:0:-1]}'    res = int(res_str)    if -2 ** 31 <= res <= 2 ** 31:      return res    else: return 0

(左右滑动查看完整代码)




相关资源