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 之间的关系,了解类型的自动转换原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值