赞
踩
题目:
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ chars = list(str(x)) if x < 0 : chars.remove('-') chars.reverse() r = ''.join(chars) r = - int(r) else: chars.reverse() r = ''.join(chars) r = int(r) if not -pow(2,31) <= r <= pow(2,31) -1: return 0 return r
解题思路:python中不能直接将整数进行转化,需要转化为字符串,再倒回整数。
重点解析:
1.list(str(x)):是将x的实数通过字符串的方式拆分开来进行存储
2.chars.remove(’-’):从字符串中删除负号方便后续倒序排列
3.r = ‘’.join(chars):这一步的目的是将保存在chars之中的字符串通过添加’ ‘的方式连接在一起,所以在’'之间不写入东西。不进行这步操作,会发现进行数字化时原来的chars中存储的是列表保存的数字
4.pow(2,31):所表示的是2的31次方
处理结果:
在第一次尝试的过程中容易忽略负数的问题导致反转出现错误,需要将正负数分开处理。而正是因为这样导致代码之中存在一段重复叙述,希望后续能够有所改进。
来源:力扣(LeetCode)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。