zoukankan      html  css  js  c++  java
  • 0007. Reverse Integer (E)

    Reverse Integer (E)

    题目

    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: ([-2^{31}, 2^{31}-1]). For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.


    题意

    给定一个32位有符号整数,将其各位倒置后输出,如果倒置后超出int范围溢出则输出0。

    思路

    问题的关键在于对溢出数的处理。溢出后再与最值比较不可取,因此通过与最值/10比较来判断最后会不会溢出。int范围为[-2147483648, 2147483647]。


    代码实现

    Java

    class Solution {
        public int reverse(int x) {
            int res = 0;
            while (x != 0) {
                int n = x % 10;
                if ((res > Integer.MAX_VALUE / 10)
                        || (res == Integer.MAX_VALUE / 10 && n > 7)) {
                    return 0;
                } else if ((res < Integer.MIN_VALUE / 10)
                        || (res == Integer.MIN_VALUE / 10 && n < -8)) {
                    return 0;
                } else {
                    res = 10 * res + n;
                }
                x /= 10;
            }
            return res;
        }
    }
    

    JavaScript

    /**
     * @param {number} x
     * @return {number}
     */
    var reverse = function (x) {
      let minVal = -Math.pow(2, 31), maxVal = Math.pow(2, 31) - 1
      let res = 0
      while (x !== 0) {
        let num = x % 10
        if ((res > maxVal / 10 || res === Math.trunc(maxVal / 10) && num > 7) ||
            (res < minVal / 10 || res === Math.trunc(minVal / 10) && num < -8)) {
          return 0
        }
        res = res * 10 + num
        x = Math.trunc(x / 10)
      }
      return res
    }
    
  • 相关阅读:
    R语言 dbWriteTable 写入数据库 为空和乱码问题
    data.table进阶
    简述ODS,和数据仓库做简单的比较
    深入ff and ffbase
    R语言操作mysql上亿数据量(ff包ffbase包和ETLUtils包)
    基于mondrain 的原理纠正特殊指标值
    基于mondrian聚合表的R计算olap开发
    dplyr快速入门
    R中的data.table 快速上手入门
    删除pentaho用户和用户文件夹
  • 原文地址:https://www.cnblogs.com/mapoos/p/13138877.html
Copyright © 2011-2022 走看看