Reverse Integer

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

想要看到一个"Accepted"真的好艰难呀!每一次敲完之后都眼巴巴地等着,结果等到的不是"Compile error"就是"runtime error"。今天的这道题其实也是以前做过的,但是我一开始居然选择了一个超级麻烦的解法(先是将整数转化为字符串,再转化为字符数组。。我也不知道我是怎么想的。。),直接导致后面一直在做无用功的修改,最后实在改不下去了,还是乖乖回归到最原始的办法了,求余。

public class Solution {
    public int reverse(int x) {
        if (x == Integer.MIN_VALUE){
            return 0;
        }    //check1
        if (x < 0){
            return (-1) * reverse(-x);
        }   //check2
        int newN = 0;
        while (x != 0){
            if (newN <= Integer.MAX_VALUE/10){   //check3
                newN *= 10;
                newN += x % 10;
                x /= 10;
            }
            else
                return 0;
        }
        return newN;
    }
}

check1:没有这个步骤的话会报错如下:


缺少check2的话报错如下:



check3是最重要的环节,一开始用麻烦解法的时候就一直报这个错误,后来实在不知道怎么改了才弃暗投明的,报错如下:



综上所述,在正式编程之前先把各种可能出现的错误预料到,比如特殊整数(上溢/下溢),正负数的不同处理等,如果不预先写好check代码,后面编译运行的时候就会漏洞百出,改起来还麻烦,倒不如防患于未然。所以说,通过这几次练习,加上昨天翻看了几页《剑指offer》,真的觉得写代码前和后对程序进行check很重要呢,一定要养成一个好习惯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值