《画解算法》2.整数反转【python-简单】

🍅 作者主页:不吃西红柿

🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。

🍅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  

给你一个 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

1、将12345 % 10 得到5,之后将12345 / 10
2、将1234 % 10 得到4,再将1234 / 10
3、将123 % 10 得到3,再将123 / 10
4、将12 % 10 得到2,再将12 / 10
5、将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相关黑科技:爬虫、算法、小工具 

(优质好文持续更新中……)✍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

360:中国为什么没有自主研发的浏览器内核?

来源:360公司物联网智库 整理发布摘要:近日360公司发表题为《中国为什么没有自主研发的浏览器内核?》的文章,文章中写道:从0到1,从无到有,这是很多人理解的自主研发,按这个标准&…

❤️ 炒 股 实 战丨原 地 起 飞 ❤️

郑重声明: 1、个人版可以免费获取交易数据进行分析,企业级大规模调用数据需要购买积分(大家玩玩即可) 2、为避免广告代言,本文将不会出现任何logo、链接和包,需要玩的主页私聊我! &#x1f345…

人工智能研究的新前线:生成式对抗网络

林懿伦, 戴星原, 李力, 王晓, 王飞跃来源:科学网 摘要:生成式对抗网络(Generative adversarial networks, GAN)是当前人工智能学界最为重要的研究热点之一。其突出的生成能力不仅可用于生成各类图像和自然语言数据,还启…

中国自动化学会平行智能专业委员会成立

摘要:2018年8月18日上午,中国自动化学会平行智能专业委员会成立大会在中国科学院自动化研究所报告厅隆重举行。2018年8月18日上午,中国自动化学会平行智能专业委员会成立大会在中国科学院自动化研究所报告厅隆重举行。中国科学院院士吴宏鑫教…

2008-2018,5个版本互联网大脑模型的演进与对比

2018年8月,我们绘制的第五个版本的互联网大脑模型图,新的版本相当于为互联网找到了左右大脑的机制-机器智能左大脑和群体智能右大脑。第五版的绘制距离2008年第一个版本正好10年。互联网大脑模型主要是针对1969年以来互联网的网状模型,在21世…

2.安装MySQL

2.安装MySQL Mac系统中安装MySQL 使⽤用Mac中的Homebrew进⾏行行mysql的安装 1.下载安装mysql brew install mysql5.7 如果看到以下界⾯面则表示已经下载安装成功 2.启动mysql mysql.server start 3.关闭mysql mysql.server stop 4.登录mysql mysql -u root -p Windows安…

CNNIC互联网报告:中国网民超8亿 前沿科技进展显著

来源:新浪摘要:8月20日下午消息,中国互联网络信息中心(CNNIC)在京发布第42次《中国互联网络发展状况统计报告》。根据报告,截至2018年6月30日,我国网民规模达8.02亿,普及率为57.7%;手机网民规模达7.88亿&am…

4.MySQL基础操作

4.MySQL基础操作 使用方法: 方式一: 通过在命令行敲命令来操作 ( 有助于命令的掌握)方式二: 通过图型界面工具,如 Navicat 等(在熟练掌握后再使用)方式三:通过编程语言(python,php,java,go...)执行mysql命令 SQL ( Structure query language ) 结构化查询语言 SQL语言分为4个…

19个人工智能(AI)热门应用领域,你知道多少?

来源:网络大数据摘要:自然语言生成是人工智能的分支,研究如何将数据转化为文本,用于客户服务、报告生成以及市场概述。01自然语言生成(Natural Language Generation)自然语言生成是人工智能的分支,研究如何将数据转化为…

滴滴重磅发布:KDD2018大会187页人工智能+交通教程

来源:专知摘要:随着深度学习技术的提升,智能交通领域吸引了越来越多研究人员的关注,今天为大家带来滴滴在KDD大会上的最新教程,为大家呈现智能交通领域的最新进展。摘要随着网上约车与自动驾驶技术的快速发展&#xff…

5.一文搞懂MySQL的数据类型

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌简历模板、PPT模板、技术资料尽管【关注】私聊我。 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 历史文章目录&#…

中国机器人产业发展报告(2018)正式发布!

来源:机器人创新生态摘要:2018年8月16日,《中国机器人产业发展报告(2018)》于2018世界机器人大会主论坛上正式发布,该报告为工信部2016-2018年专项《建立我国机器人团体标准体系与产业信息资源库》的阶段性…

❤️ 给你的Linux把把脉(内存、磁盘、CPU、网络)❤️

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、信息技术智库公号作者✌。简历模板、职场PPT模板、技术难题交流、面试套路尽管【关注】私聊我。 今日重点: ① 学会查看linux各种状态,包括&a…

团结就是力量,TeamCola浅谈创业团队腾云驾雾的归国征程

记得网上曾流传过这样一句话:“不怕神一样的对手,就怕猪一样的队友”,相信看过的人都会心一笑,明白与优秀的搭档默契地合作有多重要。“你需要信任你伙伴的能力和责任心,而信任的基础则是开放和透明——在一个扁平而高…

知识图谱的前世今生:为什么我们需要知识图谱?

来源:SimmerChan(知乎)编辑:Debra摘要:本文主要分为三个部分。第一个部分介绍我们为什么需要知识图谱,第二个部分介绍知识图谱的相关概念及其形式化表示。最后,作一个简单的总结,并介…

7.Mysql数据库表引擎与字符集

7.Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送 一段文本(MySQL语句),服务器进程处理后再向客户端进…

大数据+人工智能正以八种方式撼动商界

来源: 数据观摘要:如果你想帮助你的企业实现更多,那么拥抱大数据和人工智能就很有必要了。事实上,那些没能接受这些新兴技术的企业,用不了多久就会逐渐消失在时代发展的长河中。大数据、人工智能正成为技术界的热点&am…

android 自定义 radiobutton 文字颜色随选中状态而改变

from:http://blog.csdn.net/hpccn/article/details/7591662先看效果主要是写一个 color selector 在res/建一个文件夹取名color res/color/color_radiobutton.xml [html] view plaincopy <?xml version"1.0" encoding"utf-8"?> <selector xml…

Gartner2018新技术成熟度曲线:五大技术趋势成为新热点

来源&#xff1a;网络大数据近日&#xff0c;Gartner发布了2018年新技术成熟度曲线&#xff0c;首次将Biohacking(生物黑客)列为热点技术趋势&#xff0c;再次引发市场关注。Gartner技术成熟度曲线又称技术循环曲线、光环曲线或者技术炒作周期。是方便企业和CIO们评估新技术成熟…

一文了解物联网主控芯片架构之争

文/Boone来源&#xff1a;中关村在线&#xff0c;智慧产品圈等中兴事件引起了全球的轰动&#xff0c;大家的目光聚集在服务器、计算机、存储底层芯片技术缺乏之上。紫光等国产芯片供应商股票应声上涨。此次事件反应出了我国在芯片及其产业链上较为薄弱&#xff1b;毕竟PC时代&a…