• JavaScript:整数反转


    题目:

      给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

    如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

    假设环境不允许存储 64 位整数(有符号或无符号)。
     

    示例 1:
    
    输入:x = 123
    输出:321
    示例 2:
    
    输入:x = -123
    输出:-321
    示例 3:
    
    输入:x = 120
    输出:21
    示例 4:
    
    输入:x = 0
    输出:0
    

    提示:
    -231 <= x <= 231 - 1

      

      方法一:

    var reverse = function(x) {
        var str= x.toString();  //转成字符串
        var arrStr = str.split('');  //分割成数组
        if(arrStr[0] !== '-'){
           let num=Number(arrStr.reverse().join(''))  // 翻转数组-》转成字符串-》转成数字
            if(num <= 2147483647 && num >= -2147483648){
                 return num    
            }else{
                return 0
            }
        }else if(arrStr[0] === '-'){
            delete arrStr[0];  //删除第一位负号
            let num =  Number( arrStr.reverse().join(''));  //翻转数组-》转成字符串-》转成数字
            if(num <= 2147483647 && num >= -2147483648){
                 return -num    //增加负号
            }else{
                return 0
            }
        }
    };
    

      方法二:

    var reverse = function(x) {
        var str= x.toString();
        var arrStr = str.split('');
        if(arrStr[0] !== '-'){
           let num=Number(arrStr.reverse().join(''))
            if(num <= 2147483647 && num >= -2147483648){
                 return num    
            }else{
                return 0
            }
        }else if(arrStr[0] === '-'){
            delete arrStr[0];
            let num =  Number( arrStr.reverse().join(''))
            if(num <= 2147483647 && num >= -2147483648){
                 return ~num+1  //  '~'对数字取反,取反后需要加1  
            }else{
                return 0
            }
        }
    };
    

      

    作者:wang-yi-dong
    链接:https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-wang-yi-dong-rcyi/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    Go 语言机制之逃逸分析
    类型转换和类型断言
    浅析rune数据类型
    Go 文件操作(创建、打开、读、写)
    字符编码笔记:ASCII,Unicode 和 UTF-8
    cmd.exe启动参数详解
    linux下.so、.ko、.a的区别
    Python 和C#的交互
    Innodb表压缩过程中遇到的坑(innodb_file_format)
    更改mysql的加密方式和密码策略
  • 原文地址:https://www.cnblogs.com/wyd168/p/14783006.html
Copyright © 2020-2023  润新知