7. 整数反转

Posted 易小顺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7. 整数反转相关的知识,希望对你有一定的参考价值。

算法记录

LeetCode 题目:

  给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [ − 2 31 , 2 31 − 1 ] [−2^{31}, 2^{31} − 1] [231,2311] 就返回 0。



说明

一、题目

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

二、分析

  • 和判断回文数字的方法类似。
  • 首先根据题目的意思得出【-9, 9】之间的数据可直接进行返回即可。
  • 在进行取余求和时要注意判断 int 数据的范围越界,因为小数会自动向大数进行转型,int 数据在越界后转换为了 long 类型,而不会自动的向下转型为 int ,因此可以做 (result * 10) / 10 != result 的一步判断来确定是否会越界
  • 越界则截至返回 0 ,否则继续进行数据的下一位运算。
class Solution {
    public int reverse(int x) {
        if (x % 10 == x)
            return x;
        int result = 0;
        while(x != 0){
            if((result * 10) / 10 != result){
				return 0;
            }
            result = result * 10 + x % 10;
            x = x / 10;
        }
        return result;
    }
}

总结

熟悉基本数据类型 intlong 之间的关系,了解类型的自动转换原则。

以上是关于7. 整数反转的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 7. 整数反转

Leetcode 7.反转整数 By Python

p66 反转整数 (leetcode 7)

7. 整数反转

7. 整数反转

7. 反转整数 [leetcode 7: Reverse Integer]