Leet Code 7.整数反转

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

题解

简单题。每次把数x的个位数分离出来,用新的数y加起来。有堆栈的思想。

  • 题目的难点在于不能溢出一个范围
  • 所以解题过程中,需要有判断条件
我的解法代码
import java.lang.reflect.Array;
import java.util.*;

public class leetcode {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int x = scan.nextInt();
        int rev = reverse(x);
        System.out.println(rev);
    }

    public static int reverse(int x) {
        int rev = 0;//记录新数字
        while (x != 0) {
            //pop操作
            int pop = x % 10;
            x /= 10;
            //push操作
            //不能溢出范围,加上判断条件
            if ((rev > Integer.MAX_VALUE / 10) || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
            if ((rev < Integer.MIN_VALUE / 10) || (rev == Integer.MIN_VALUE / 10 && pop < (-8))) return 0;
            rev = rev * 10 + pop;
        }
        return rev;
    }
}
posted @ 2020-02-14 15:03  Tanglement  阅读(92)  评论(0)    收藏  举报