首页 > 其他 > 详细

Leet Code 7.整数反转

时间:2020-02-14 15:10:58      阅读:44      评论:0      收藏:0      [点我收藏+]
给出一个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;
    }
}

Leet Code 7.整数反转

原文:https://www.cnblogs.com/chenshaowei/p/12307494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!