Leetcode-7. 整数反转

题目描述:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123

输出: 321

 示例 2:

输入: -123

输出: -321

示例 3:

输入: 120

输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

解法:


主要要考虑到溢出的问题

通过循环将数字x的每一位拆开,在计算新值时都判断是否溢出

溢出条件有两个:一个是大于整数的最大值Integer.MAX_VALUE,一个是小于整数最小值Integer.MIN_VALUE

设当前计算结果为ans,下一位为pop

1.从ans * 10 + pop > MAX_VALUE这个溢出条件来看

当出现 ans > MAX_VALUE / 10 且 还有pop需要添加 时,则一定溢出

当出现 ans == MAX_VALUE / 10 且 pop > 7 时,则一定溢出,7是2^31 - 1的个位数

2.从ans * 10 + pop < MIN_VALUE这个溢出条件来看

当出现 ans < MIN_VALUE / 10 且 还有pop需要添加 时,则一定溢出

当出现 ans == MIN_VALUE / 10 且 pop < -8 时,则一定溢出,8是-2^31的个位数


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述:题目难度:简单给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1:输入:...
    LeeYunFeng阅读 3,655评论 0 47
  • 7.整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123...
    跟着风行走阅读 2,823评论 0 1
  • 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例...
    hekirakuno阅读 1,567评论 0 1
  • 自从做了后台产品经理,上线后的运营是一个大问题。每次上线都会发邮件通知公司内部,新功能有哪些,操作是什么。最后发现...
    王新月阅读 2,750评论 0 3
  • 叶子,信倾收到,阅后即复。你瞧瞧,这个光头柚子叔,急不可耐的傻样儿,比年轻人谈恋爱,写情书,性子还急。 写下这几句...
    雁韧阅读 3,685评论 9 23

友情链接更多精彩内容