zoukankan      html  css  js  c++  java
  • 整数反转问题--正确率极低

    专门把这道溢出的题目写一遍,是因为我发现很多解法都存在一定的问题。

    1.首先题目要求只能用32位有符号整数存储,所以不能用long长整型。

    2.还有些解答用了abs绝对值处理。但需要考虑最小的负数取绝对值后会比最大的正数多1。所以要在取绝对值之前加一个判断语句。

    JAVA

    class Solution {
        public int reverse(int x) {
            int sign = x < 0 ? -1 : 1;
            if(x == Integer.MIN_VALUE) return 0;
            x = Math.abs(x);
            int res = 0;
            while (x > 0) {
                if(res > (Integer.MAX_VALUE-x%10)/10)
                    return 0;
                res = res * 10 + x % 10;
                x /= 10;
            }
            return sign*res;
        }
    }

    附上Python代码

    class Solution:
        def reverse(self, x: int) -> int:
            """
            :type x: int
            :rtype: int
            """
            x = int(str(x)[::-1]) if x >= 0 else - int(str(-x)[::-1])
            return x if x < 2147483648 and x >= -2147483648 else 0
  • 相关阅读:
    前端开发流程
    前端组件化开发方向
    模板引擎
    css模块化
    js组件化、模块化开发
    前端开发流程
    模块化开发
    XSS攻击
    react组件化开发发布到npm
    js过滤字符串中的html标签
  • 原文地址:https://www.cnblogs.com/yawenw/p/12862378.html
Copyright © 2011-2022 走看看