zoukankan      html  css  js  c++  java
  • 判断一个int 型整数 是否为回文数

    leetcode 上的题目

    Determine whether an integer is a palindrome. Do this without extra space.

    由于不能使用额外空间,所以不能把数字转化为字符串后进行比较。因为这样空间复杂度将为线性。

    leetcode给出了几点提示

    1.判断负数是否为回文数,查了下回文数定义,负数不为回文数

    2.就是注意不能把数字转字符串,因为不能用额外空间。

    3.如果打算反转数字,需要处理好数字溢出情况

    我的解决办法:

    先获取数字长度,然后获取最右边的数及最左边的数。

    var isPalindrome = function(x) {
            if(x < 0){
                return false;
            }
            if(x < 10){
                return true;
            }
    
            var tmp =x;
            var len = 1;
            var n= 1;
            while ( ( tmp = parseInt(tmp/10))!= 0){
                len *= 10;
                n ++ ;
            }
            n = parseInt(n/2);
    
            var left = x;
            var right = x;
            for(var i =0 ; i <= n; i ++){
                var t = parseInt(left/len)%10;
                var r = right%10;
                if(t != r){
                    return false;
                }
                len /= 10;
                right = parseInt(right/10);
            }
    
            return true;
    
        };
  • 相关阅读:
    JS开发技巧
    Git push 常见用法
    关闭浏览器标签
    vue 样式穿透 watch深度监听
    Git Commit Template 提交模板
    常用git stash命令:
    Windows下安装及使用NVM
    JS正则表达式
    js转码
    多行文本溢出显示省略号(…)全攻略
  • 原文地址:https://www.cnblogs.com/neverleave/p/5937936.html
Copyright © 2011-2022 走看看