python3整数反转

python3整数反转

python3整数反转

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

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

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

示例 1:

输入:x = 123
输出:321
示例 2:

输入:x = -123
输出:-321
示例 3:

输入:x = 120
输出:21
示例 4:

输入:x = 0
输出:0

思路1:将其转为字符串进行翻转,并进行正负的判断。最后,题目要求如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0

class Solution:
    def reverse(self, x: int) -> int:
        str1 = str(x)
        
        if str1[0] == '-':
            str1 = str1[0] + str1[:0:-1]
        else:
            str1 = str1[::-1]
        return int(str1) if -2147483648<int(str1)<2147483648 else 0

思路2:不使用字符串。当翻转后的数字大于条件就返回0

class Solution:
    def reverse(self, x: int) -> int:
		y, res = abs(x), 0
        # 则其数值范围为 [−2^31, 2^31 − 1]
        boundry = (1<<31) -1 if x>0 else 1<<31
        while y != 0:
            res = res*10 +y%10
            if res > boundry :
                return 0
            y //=10
        return res if x >0 else -res

改进:

class Solution:
    def reverse(self, x: int) -> int:
        str1 = str(x)
        
        if str1[0] == '-':
            str1 = str1[0] + str1[:0:-1]
            a=int(str1)
            if (1<<31)<abs(a):
                return  0
        else:
            str1 = str1[::-1]
            a= int(str1)
            if a>(1<<31) -1:
                return 0
        return a 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100091.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux防cc脚本_configure命令

    linux防cc脚本_configure命令CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法。什么是

    2022年8月1日
  • mongodb复制集 拾遗

    mongodb复制集 拾遗mongodb复制集 拾遗

    2022年4月24日
  • 吊炸天!74款APP完整源码!

    吊炸天!74款APP完整源码!吊炸天!74款APP完整源码!超级干货大集合!下面是所有APP的效果图展示,由于图片较多,加载较慢,为了方便阅读,您也可以点击阅读原文观看。WeChat高仿微信高仿微信,实现功能有:好友之间文字聊天,表情,视频通话,语音,语音电话,发送文件等。知乎专栏App第三方的app,引用作者的描述:“最近一直在利用空余时间开发一个完整的App,名字就叫“专栏”。开发这个App的…

    2022年4月26日
  • Android反编译apk逆向分析

    Android反编译apk逆向分析

    2021年9月30日
  • git拉取代码冲突了怎么解决_github拉取代码慢

    git拉取代码冲突了怎么解决_github拉取代码慢问题描述在idea通过git从develop分支拉取最新代码时,又遇到了git冲突,特此记录一下原因分析:大部分原因都是其他同事更改了某些文件然后本地也更改了同样的文件导致冲突,所以每天上班先拉取一下最新代码,这样会大大减少冲突发生的可能(别问我怎么知道的)解决方案:如下图所示:我们点击merge去合并即可,解决冲突,不建议直接选择acceptyours或者accepttheirs会导致代码覆盖…

    2022年10月20日
  • JAVA枚举类型(Enum)的使用[通俗易懂]

    JAVA枚举类型(Enum)的使用[通俗易懂]在现实社会中,有些类的实例对象是固定的。例如季节,只有春夏秋冬。如果你创建了一个season类,你当然有义务维护这个类的实例对象只能是春(SPRING)、夏(SUMMER)、秋(AUTUMN)、冬(WINTER)这四个。这个时候就体现出枚举类的作用了,java中枚举类型就是针对这样的场景需求所设计的。/***枚举类的后缀建议为Enum,枚举类型的实例对象建议全大写(这样做符合JAVA的…

    2022年10月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号