package com.fishercoder.solutions;

/**
 * 7. Reverse Integer

 Given a 32-bit signed integer, reverse digits of an integer.

 Example 1:
 Input: 123
 Output: 321

 Example 2:
 Input: -123
 Output: -321

 Example 3:
 Input: 120
 Output: 21

 Note:
 Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1].
 For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
 */
public class _7 {

    public static class Solution1 {
        /**This solution is NOT meeting the problem requirement actually:
         * Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1].*/
        public int reverse(int x) {
            long result = 0;
            while (x != 0) {
                result = result * 10 + x % 10;
                x /= 10;
                System.out.println("result = " + result);
                if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
                    System.out.println("break out..");
                    return 0;
                }
            }
            return (int) result;
        }
    }

    public static class Solution2 {
        /**credit: https://leetcode.com/problems/reverse-integer/discuss/4060/My-accepted-15-lines-of-code-for-Java*/
        public int reverse(int x) {
            int result = 0;
            while (x != 0) {
                int lastDigit = x % 10;
                int newResult = result * 10 + lastDigit;
                if (result != (newResult - lastDigit) / 10) {
                    return 0;
                }
                x /= 10;
                result = newResult;
            }
            return result;
        }
    }
}
@@ -33,464 +33,8 @@
 s;%0A%0A
-/**%0A * 7. Reverse Integer%0A%0A Given a 32-bit signed integer, reverse digits of an integer.%0A%0A Example 1:%0A Input: 123%0A Output: 321%0A%0A Example 2:%0A Input: -123%0A Output: -321%0A%0A Example 3:%0A Input: 120%0A Output: 21%0A%0A Note:%0A Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: %5B%E2%88%92231,  231 %E2%88%92 1%5D.%0A For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.%0A */%0A
 publ

refactor 7