给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

    如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。

    假设环境不允许存储 64 位整数(有符号或无符号)。

    1. class Solution {
    2. public int reverse(int x) {
    3. int rev = 0;
    4. //重复「弹出」x的末尾数字,将其「推入」rev 的末尾,直至 x为0
    5. while (x != 0) {
    6. //判断反转后的数字是否超过 32 位有符号整数的范围
    7. if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) {
    8. return 0;
    9. }
    10. // 弹出 x 的末尾数字 digit
    11. int digit = x % 10;
    12. x /= 10;
    13. // 将数字 digit 推入 rev 末尾
    14. rev = rev * 10 + digit;
    15. }
    16. return rev;
    17. }
    18. }