LeetCode#7 整数反转(数学)

Posted sykline

tags:

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

题目:

 

思路:(题外话:好久不刷题,明显生疏了好多,要捡起来记住当初那一份热爱!)

判断溢出的方法,在将数字反转的同时,专注在int的最大值/10和最小值/10这两个数上进行判断就可以了:

拿正数为例:设res为反转后的数字

if  res > Integer.MAX_VALUE/10 无论res再加上什么数字都会溢出

if res == Integer.MAX_VALUE/10 则res再加上比7大的数字就会溢出

代码:

import java.util.Scanner;

class Solution {
    public int reverse(int x) {
        int res = 0;
        while(x != 0) {
            int temp = x%10;
            x /= 10;
            if(res > Integer.MAX_VALUE/10 || (res == Integer.MAX_VALUE/10 && temp > 7))
                return 0;
            if(res < Integer.MIN_VALUE/10 || (res == Integer.MIN_VALUE/10 && temp >8))
                return 0;
            res = res * 10 + temp;
        }
        return res;
    }
}

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        Solution solution = new Solution();
        int ans = 0,K = 5;
        while(K > 0) {
            K--;
            ans = scan.nextInt();
            System.out.println(solution.reverse(ans));
        }
    }

}

 

 

 

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

LeetCode 7. 整数反转

小Y学算法⚡️每日LeetCode打卡⚡️——7.整数反转

Leetcode 7. 整数反转-简单

Leetcode 7.反转整数 By Python

LeetCode 7. 整数反转

p66 反转整数 (leetcode 7)