当前位置:   article > 正文

7. 整数反转——python版(做题解析)_python编写函数fun(x),功能是返回正整数x的逆序数

python编写函数fun(x),功能是返回正整数x的逆序数

题目:
给你一个 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

解题思路python中不能直接将整数进行转化,需要转化为字符串,再倒回整数。

重点解析
1.list(str(x)):是将x的实数通过字符串的方式拆分开来进行存储
2.chars.remove(’-’):从字符串中删除负号方便后续倒序排列
3.r = ‘’.join(chars):这一步的目的是将保存在chars之中的字符串通过添加’ ‘的方式连接在一起,所以在’'之间不写入东西。不进行这步操作,会发现进行数字化时原来的chars中存储的是列表保存的数字
4.pow(2,31):所表示的是2的31次方
处理结果
在这里插入图片描述

在第一次尝试的过程中容易忽略负数的问题导致反转出现错误,需要将正负数分开处理。而正是因为这样导致代码之中存在一段重复叙述,希望后续能够有所改进。
来源:力扣(LeetCode)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/392860
推荐阅读
相关标签
  

闽ICP备14008679号