leetcode-反转整数

题目

leetcode-反转整数_第1张图片

思路

  • 每次mod去最后一位数字tail
  • 之前的反转结果*10 + tail
  • 难点是溢出检查,要在溢出发生之前作出判定
    leetcode-反转整数_第2张图片

code

public class ReverseInteger {
    public int reverse(int x) {
        int src = x;
        int result = 0;
        while(src != 0) {
            int tail = src % 10;
            if (result > Integer.MAX_VALUE/10 || (result == Integer.MAX_VALUE / 10 && tail > 7)) return 0;
            if (result < Integer.MIN_VALUE/10 || (result == Integer.MIN_VALUE / 10 && tail < -8)) return 0;
            result = result * 10 + tail;
            src /= 10;
        }
        return result;
    }
}

你可能感兴趣的:(刷题笔记)