zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    UVa 1331 最大面积最小的三角剖分
    UVa 1626 括号序列(矩阵连乘)
    POJ 3295 Tautology(构造法)
    POJ 2586 Y2K Accounting Bug(贪心)
    POJ 2109 Power of Cryptography
    abcd
    好数
    Gift
    密码游戏
    约瑟夫游戏
  • 原文地址:https://www.cnblogs.com/hddandelion/p/13817226.html
Copyright © 2011-2022 走看看