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

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

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

    示例 1:

    输入:x = 123
    输出:321
    示例 2:

    输入:x = -123
    输出:-321
    示例 3:

    输入:x = 120
    输出:21
    示例 4:

    输入:x = 0
    输出:0

    提示:

    -231 <= x <= 231 - 1

    1. class Solution {
    2. public int reverse(int x) {
    3. String num = x + "";
    4. int n = num.length();
    5. if (n == 1) return x;
    6. int sign = 1, end = 0;
    7. if (num.charAt(0) == '-') {
    8. sign = -1;
    9. end++;
    10. }
    11. int res = 0;
    12. int i = n - 1;
    13. while (num.charAt(i) == '0') i--;
    14. for ( ; i >= end; --i) {
    15. if (res > Integer.MAX_VALUE / 10 || res < Integer.MIN_VALUE / 10)
    16. return 0;
    17. res = res * 10 + sign * (num.charAt(i) - '0');
    18. }
    19. return res;
    20. }
    21. }
    1. class Solution {
    2. public int reverse(int x) {
    3. int res = 0;
    4. while (x != 0) {
    5. //取最后一位
    6. int tem = x % 10;
    7. if (res > Integer.MAX_VALUE / 10 || res < Integer.MIN_VALUE / 10) return 0;
    8. res = res * 10 + tem;
    9. x /= 10;
    10. }
    11. return res;
    12. }
    13. }