每日一道Leetcode——整数反转

    科技2024-05-07  99

    题目: 解法: 由于超过整数最大或最小值会产生溢出,因此在乘10进位之前判断是否超过最大最小值除以10,同时还需要判断相等的情况,余数是否超过。

    class Solution { public int reverse(int x) { int reverse = 0; while(x!=0){ int a = x%10; if(reverse>Integer.MAX_VALUE/10 || reverse<Integer.MIN_VALUE/10){ return 0; } if(reverse==Integer.MAX_VALUE/10 && a>Integer.MAX_VALUE%10){ return 0; } if(reverse==Integer.MIN_VALUE/10 && a<Integer.MIN_VALUE%10){ return 0; } reverse = reverse * 10 + a; x = x/10; } return reverse; } }
    Processed: 0.016, SQL: 8