アルゴリズム7:32ビットのシンボル付き整数を与え、この整数の各ビットの数字を反転する必要があります.

5342 ワード

//     32        ,                   。 
//
//    1: 
//
//   : 123
//  : 321
// 
//
//    2: 
//
//   : -123
//  : -321
// 
//
//    3: 
//
//   : 120
//  : 21
// 
//
//   : 
//
//               32        ,        [−231, 231 − 1]。       ,               0。 
// Related Topics   


//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int reverse(int x) {
        int rev = 0;
        //    12345
        while (x != 0) {
            //   x  0
            // x  10     1:5  2:4
            int pop = x % 10;
            //x=x/10  1:1234  2:123
            x /= 10;
            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;
            }
            //1:5  2:
            rev = rev * 10 + pop;
        }
        return rev;
    }
}
//leetcode submit region end(Prohibit modification and deletion)