• 整数反转


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

    示例 1:

    输入: 123
    输出: 321

    此题为leetcode上的第7题 ,题解链接在此:https://leetcode-cn.com/problems/reverse-integer/

    说明:此题用JS有多种方法可以实现,但是!最优解是使用数学计算解决,使用转字符串,转数组的方式这里不提。

    直接上代码:

     1 /**
     2  * @param {number} x
     3  * @return {number}
     4  */
     5 var reverse = function(x) {
     6     let current = 0
     7     let MAX_VALUE = Math.pow(2, 31) - 1
     8     let MIN_VALUE = Math.pow(-2,31)
     9     while(x !== 0){
    10         let pop = x % 10
    11         if(current > MAX_VALUE / 10 || (current === MAX_VALUE / 10 && pop > 7))
    12             return 0
    13         if(current < MIN_VALUE / 10 || (current === MIN_VALUE / 10 && pop < -8))
    14             return 0
    15         current = current * 10 + pop
    16         x = parseInt(x / 10)
    17         
    18     }
    19     return current
    20 };

      具体思路,点击上方链接进入官方查看题解即可,这里只说明一点就是,因为javascript语言的特殊性,所有数字都属于Number类型,不会像C类语言,如C++,Java一样自动舍弃小数点后面的浮点数,将最后的结果转为整数。所以一定要使用全局对象中的parseInt()函数将结果转为整数,这样才能提交通过。注意:一定不要使用Math.floor()进行向下取整,因为当-123 / 10 向下取整时的结果是-13,不符合预期结果,遇到负数就会出错。

    另外补充一个知识点:

    正数模任意非0的数,结果都是正数,负数模任意非0的数,结果都是负数

    每天打卡一个算法!第一天!

     

  • 相关阅读:
    生成建表脚本(V2.0)
    QQ抢车位游戏PhysicalDataModel
    自定义工资公式设计
    .NET开发人员必知的八个网站
    MongoDB 学习 error以及解决方法
    lm_sensors 查看硬件信息
    setuid on shell scripts
    SSD寿命状态检测
    SysBench安装使用。
    用rsync对网站进行镜像备份(不靠谱)
  • 原文地址:https://www.cnblogs.com/cducz/p/11823433.html
Copyright © 2020-2023  润新知