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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 史上最详细的kali安装教程[通俗易懂]

    史上最详细的kali安装教程[通俗易懂]一、下载系统镜像文件首先下载系统镜像,进入kali官网,在Downloads中选择DownloadKaliLinux,如下图所示。2.根据电脑配置选择合适的版本,在这里我选择的是64位版本,点击HTTP下载镜像文件,或者torrent下载可使用迅雷。kali版本介绍:第一类是常规的32和64位版本;第二类简化版如:kalilinuxlight;第三类桌面环境如:mate、k…

    2022年6月11日
    77
  • git部署到服务器上_git部署代码到服务器

    git部署到服务器上_git部署代码到服务器搭建Git服务器并感受hook使用通常情况下我们都是将项目托管到Github,Coding等服务商。如果你有一台自己的Linux云主机,在上面搭建Git服务器比想象中要简单的多。这篇文章讲解如何搭建Git服务器及使用git的hook机制(使用post-receive这个hook,在git服务器受到push请求,并且接受完代码提交时…文章飞凡的陀螺2018-04-22819浏览量Git远程仓库…

    2022年10月4日
    1
  • openCV中cvSnakeImage()函数代码分析

    openCV中cvSnakeImage()函数代码分析/*M///////////////////////////////////////////////////////////////////////////////////////////IMPOR

    2022年7月3日
    19
  • php 邮箱正则_正则表达式判断邮箱格式

    php 邮箱正则_正则表达式判断邮箱格式PHP邮箱验证正则表达式:preg_match(“/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i”,$email);如果需要更加完善、严格的验证,修改这个正则表达式即可。PHP邮箱验证正则表达式新手实例:functionisEmail($email){if(preg_match(“/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)…

    2022年9月24日
    0
  • 注册机request填什么_注册register

    注册机request填什么_注册register  广播的注册分为动态注册和静态注册,静态注册主要在开机后PackageManagerService利用 AndroidManifest扫描安装的apk获取AndroidManifest内注册的广播所以忽略静态注册。今天主要介绍动态广播的注册。   1. 简单举例 IntentFilterfilter=newIntentFilter();…

    2022年9月11日
    0
  • java对象数组 创建对象数组,初始化对象数组「建议收藏」

    java对象数组 创建对象数组,初始化对象数组「建议收藏」对象数组的概念:如果一个数组中的元素是对象类型,则称该数组为对象数组。当需要一个类的多个对象时,应该用该类的对象数组来表示,通过改变下标值就可以访问到不同的对象。对象数组的定义和使用:对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例化。对象数组的声明形式是:类名对象数组名[];为对象数组分配内存空间:对象数组名=new类名[数组长度];//注意:此处不是构…

    2022年5月20日
    46

发表回复

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

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