资讯专栏INFORMATION COLUMN

javascript初探LeetCode之9.Palindrome Number

icyfire / 424人阅读

摘要:题目分析这是上的第题,难度为,判断整型数字是否为回文串,需要注意两点负数都不是回文小于的非负整数都是回文这一题与第题类似,也可以有两种思路数组法和模十法。所以代码可以如下改进能被整除的非整数和负数,返回

题目

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

分析

这是leetcode上的第9题,难度为easy,判断整型数字是否为回文串,需要注意两点:

1、负数都不是回文

2、小于10的非负整数都是回文

这一题与第7题类似,也可以有两种思路:数组法和模十法。由于题目对空间复杂度有要求,所以使用模十法

js实现

模十法:
把给定的x使用模十法逆序一下,与原x的值比较

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    if(x<0) return false;
    if(x<10) return true;
    var temp = 0;
    var org = x;//记录x的初始值
    while(x>9){
        temp = x%10+temp*10
         x = parseInt(x/10)
    }
    temp = temp*10 + x
    return temp == org
};

模十改进版:
上面方法将给的x完全逆序后比较,其实还可以简化一下。比如整数12321,当上面方法中的while循环进行到当temp=12,x=123时,这时就可以判断为回文了,此时temp==parseInt(x/10)。再比如12344321,当进行到temp=1234,x=1234时也可以判断回文了,此时temp==x。所以代码可以如下改进:

/**
 * @param {number} x
 * @return {boolean}
 */
var isPalindrome = function(x) {
    //能被10整除的非0整数和负数,返回false
    if(x<0||(x%10==0&&x!=0)) return false;
    if(x<10) return true;
    var temp = 0;
    while(x>temp){
        temp = x%10+temp*10
         x = parseInt(x/10)
    }
    return (temp == x)||(parseInt(temp/10)==x)
};

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88973.html

相关文章

  • leetcode部分题目答案JavaScript

    摘要:自己没事刷的一些的题目,若有更好的解法,希望能够一起探讨项目地址 自己没事刷的一些LeetCode的题目,若有更好的解法,希望能够一起探讨 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...

    alphahans 评论0 收藏0
  • leetcode 9 Palindrome Number

    摘要:有一点需要注意的是,负数不算作回文数。而第题当时的方法是,对整数取除的余数,即是当前整数的最后一位。那么它翻转后一半的数字之后,应该和前半段的数字相等,我们将采用这种思路进行解题。 题目详情 Determine whether an integer is a palindrome. Do this without extra space.题目要求我们在不占用额外空间的前提下,判断一个整...

    darkbug 评论0 收藏0
  • [LeetCode] 9. Palindrome Number

    Problem Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121Output: trueExample 2: Input: -121Output: falseExplana...

    zhaochunqi 评论0 收藏0
  • Leetcode 9 Palindrome Number 回文数字判定

    摘要:难度本题要求判定一个整数是否为回文数字比如都是回文数字但是不是回文数字所有负数都不是回文数字本题还有一个关键要求不能使用额外空间我理解这里的额外空间是指堆空间在程序中不能去额外的什么变量更不用说提升空间复杂度直接上的解法解法 Determine whether an integer is a palindrome. Do this without extra space. Some ...

    ningwang 评论0 收藏0
  • July 算法习题 - 字符串2 + Leetcode 8,9

    摘要:判断一条单向链表是不是回文解法可以借助栈,将遍历到的前半段链表节点放入栈,后半段每当遍历到一个,都要与出栈的节点相比较。如果中间出现不相等的情况,则不是回文。 [July 程序员编程艺术:面试和算法心得题目及习题][1] 字符串转换成整数 also Leetcode 8 String to Integer (atoi) 题目描述 输入一个由数字组成的字符串,把它转换成整...

    timger 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<