leetcode7、整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

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

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

输入: 120
输出: 21

我的解法为:

class Solution {
    public int reverse(int x) {
        if(x/10 == 0)return x;
        int y = Math.abs(x), p;
        int q = x/y;
        double m, n, t;
        String str = "";
        t = Math.pow(2, 31);
        m = -t;
        n = t - 1;
        if(x <= m || x >= n)return 0;
        while(y != 0){
            p = y % 10;
            y = y / 10;
            str += p;
        }
        long l = Long.parseLong(str);
        if(l >= m && l <= n)return q*Integer.parseInt(str);
        else return 0;
    }
}
不过在讨论板上看到更简单的解法,妈呀!什么时候才能和他们一样牛!
public int reverse(int x) {
        long n = 0;
        while(x != 0) {
            n = n*10 + x%10;
            x = x/10;
        }
        return (int)n==n? (int)n:0;
    }

还有此解:
int reverse(int x)
{
	long n = 0;
	while (x)
	{
		n = n * 10 + x % 10;
		x /= 10;
	}
	return n > INT_MAX || n < INT_MIN ? 0 : n;
}
原文地址:https://www.cnblogs.com/hddandelion/p/13817226.html