iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python简单实现整数反转的画解算法
  • 912
分享到

python简单实现整数反转的画解算法

2024-04-02 19:04:59 912人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

题目描述 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 −

题目描述

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

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

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

示例 1:

输入:x = 123

输出:321

示例 2:

输入:x = -123

输出:-321

示例 3:

输入:x = 120

输出:21

示例 4:

输入:x = 0
输出:0

问题分析

首先我们想一下,怎么去反转一个整数?

用栈?

或者把整数变成字符串,再去反转这个字符串?

这两种方式是可以,但并不好。

  • 实际上我们只要能拿到这个整数的 末尾数字 就可以了。
  • 以12345为例,先拿到5,再拿到4,之后是3,2,1,我们按这样的顺序就可以反向拼接处一个数字了
  • 也就能达到 反转 的效果。

怎么拿末尾数字呢?

好办,用取模运算就可以了

1.jpg

  • 将12345 % 10 得到5,之后将12345 / 10
  • 将1234 % 10 得到4,再将1234 / 10
  • 将123 % 10 得到3,再将123 / 10
  • 将12 % 10 得到2,再将12 / 10
  • 将1 % 10 得到1,再将1 / 10

这么看起来,一个循环就搞定了,循环的判断条件是x>0

但这样不对,

  • 因为忽略了 负数
  • 循环的判断条件应该是while(x!=0),无论正数还是负数,
  • 按照上面不断的/10这样的操作,最后都会变成0,所以判断终止条件就是!=0
  • 有了取模和除法操作,对于像12300这样的数字,也可以完美的解决掉了。

看起来这道题就这么解决了,但请注意,题目上还有这么一句

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。

也就是说我们不能用long存储最终结果,而且有些数字可能是合法范围内的数字,但是反转过来就超过范围了。

假设有1147483649这个数字,它是小于最大的32位整数2147483647的,

但是将这个数字反转过来后就变成了9463847411,

这就比最大的32位整数还要大了,这样的数字是没法存到int里面的,所以肯定要返回0(溢出了)。

甚至,我们还需要提前判断

2.jpg

上图中,绿色的是最大32位整数

第二排数字中,橘子的是5,它是大于上面同位置的4,这就意味着5后跟任何数字,都会比最大32为整数都大。

所以,我们到【最大数的1/10】时,就要开始判断了

  • 如果某个数字大于 214748364那后面就不用再判断了,肯定溢出了。
  • 如果某个数字等于 214748364呢,这对应到上图中第三、第四、第五排的数字,
  • 需要要跟最大数的末尾数字比较,如果这个数字比7还大,说明溢出了。

对于负数也是一样的

3.jpg

上图中绿色部分是最小的32位整数,同样是在【最小数的 1/10】时开始判断

  • 如果某个数字小于 -214748364说明溢出了
  • 如果某个数字等于 -214748364,还需要跟最小数的末尾比较,即看它是否小于8。

以上就是python简单实现整数反转的画解算法的详细内容,更多关于Python整数反转的画解算法的资料请关注编程网其它相关文章!

--结束END--

本文标题: python简单实现整数反转的画解算法

本文链接: https://www.lsjlt.com/news/134082.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python简单实现整数反转的画解算法
    题目描述 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 −...
    99+
    2024-04-02
  • python3整数反转的实现方法
    给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1...
    99+
    2024-04-02
  • Python简单实现图片转字符画的实例项目
    1. 原理 利用 PIL 库来获取图片并修改大小, 利用灰度值转换公式把每一个像素的 RGB 值转为灰度值 gray = int(0.2126*r+0.7152*g+0.0722...
    99+
    2024-04-02
  • python实现简单反弹球游戏的方法
    这篇文章将为大家详细讲解有关python实现简单反弹球游戏的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下tkinter实现,直接贴上代码from tkinter im...
    99+
    2023-06-14
  • python排序算法的简单实现方法
    1 冒泡排序  1.1 算法步骤: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元...
    99+
    2024-04-02
  • Python+Tkinter实现简单的画图软件
    目录一起画图吧画图软件实现代码项目地址一起画图吧 为什么突然想搞这个画图软件呢 不瞒各位,是因为最近接到了一个很小很小很小小得不能再小的小项目 就是基于Tkinter,做一个简易的画...
    99+
    2023-05-17
    Python Tkinter实现画图软件 Python Tkinter画图 Python 画图 Python Tkinter
  • 详解Python中位运算的简单实现
    目录简介应用场景案例源码简介 程序中的数在计算机内存中都是以二进制的形式存在的,位运算就是直接对整数在内存中对应的二进制位进行操作,一般是将数字化为二进制数后进行操作。 应用场景 在...
    99+
    2024-04-02
  • 使用python实现两数之和的画解算法
    题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对...
    99+
    2024-04-02
  • python整数反转输出的方法是什么
    可以使用以下方法来反转整数:1. 将整数转换为字符串,然后使用字符串的切片操作[::-1]来进行反转,最后再将反转后的字符串转换回整...
    99+
    2023-10-18
    python
  • CSS3中@keyframes简单动画的实现方法
    这篇文章主要介绍了CSS3中@keyframes简单动画的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。CSS3 @keyframes简单动画实现定义:通过 @key...
    99+
    2023-06-08
  • python反转一个三位整数的多种实现方案
    在LintCode上练习遇到这个问题,查阅资料找到多种方法,总结如下。 输入 输出 123 ...
    99+
    2024-04-02
  • Python简繁体转换的简单实现步骤
    目录1、opencc-python1.1安装opencc-python1.2内建的opencc翻译配置1.3简繁体转换2、zhtools2.1安装2.2简繁体转换3、zhconv3....
    99+
    2024-04-02
  • Python实现单链表中元素的反转
    给定一个单链表,将其反转。其实很容易想到,只需要修改每个结点的指针指向:即令后一个结点指向前一个结点,并且将表头指针指向最后一个结点即可。 这个过程可以用循环实现,也可以用递归来实...
    99+
    2024-04-02
  • Python 实现反转整数的案例(很容易懂的那种)
    题目: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1:   输入: 123   输出: 321    示例 2:   输入: -123  ...
    99+
    2024-04-02
  • python实现简单的计算器功能
    本文实例为大家分享了python实现简单计算器的具体代码,供大家参考,具体内容如下 今天学习到python中界面设计部分,常用的几种图形化界面库有:Jython、wxPython和t...
    99+
    2024-04-02
  • Python单个项目列表转换为整数的实现
    Python 中要将单个项目列表转换为整数: 访问索引 0 处的列表。将结果分配给变量。该变量将存储列表中的唯一项目。 my_list = [243] result = my_l...
    99+
    2023-02-07
    Python单个项目列表转换为整数 python列表转成整数
  • 深入理解PHP数组反转的算法
    php 数组反转有两种方法:array_reverse() 函数:直接修改数组,时间复杂度 o(n)。手动反转方法:创建新数组存储反转元素,时间复杂度 o(n),可自定义操作。...
    99+
    2024-04-28
    php 数组反转
  • 详解C/C++高精度算法的简单实现
    目录前言一、基本原理二、辅助方法1、字符串转高精度2、整型转高精度3、比较4、打印三、算法实现1、加法2、减法3、乘法4、除法四、使用示例1、加法2、减法3、乘法4、除法总结前言 由...
    99+
    2022-12-15
    C++实现高精度算法 C++高精度算法 C语言 高精度算法
  • 一文详解Vue3中简单diff算法的实现
    目录简单Diff算法减少DOM操作例子结论实现DOM复用与key的作用例子虚拟节点的key实现找到需要移动的元素探索节点顺序关系实现如何移动元素例子实现添加新元素例子实现移除不存在的...
    99+
    2024-04-02
  • Python中怎么实现一个简单遗传算法
    今天就跟大家聊聊有关Python中怎么实现一个简单遗传算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。遗传算法遗传算法是模仿自然选择过程的优化算法。 他们没有使用"数学技...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作