7. Reverse Integer

QUESTION:

Reverse digits of an integer.

Example1: x = 123, return 321 Example2: x = -123, return -321

Note: The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

EXPLANATION:

其实思路都是挺简单的,就是把每一位都拿出来重新组装即可。

SOLUTION:

public class Solution {
    public int reverse(int x) {
        StringBuilder sb = new StringBuilder();
        long remain = 0;
        long index = -1;
        boolean flag = false;
        long newValue = (long)x;
        if(Math.abs(newValue)!=x){
            flag = true;
            newValue = Math.abs((long)x);
        }
        while (index != 0){
            index = newValue/10;
            remain = newValue%10;
            sb.append(remain);
            newValue = newValue/10;
        }
        if(flag)
            sb.insert(0,"-");
        long value = Long.parseLong(sb.toString());
        if(value>Integer.MAX_VALUE || value<Integer.MIN_VALUE)
            return 0;
        return (int)value;
    }
}
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if(len(str(x))==1) : return x
        reverse = ""
        flag = True if x>0 else False
        index = 0 if flag else 1
        for i in range(index ,len(str(x)),1):
            reverse = str(x)[i]+reverse
        result = long(reverse) if flag else -long(reverse)
        if result > 2147483647 or result < -2147483648 :
            return 0
        return int(result)