美文网首页
每天一题LeetCode【第7天】

每天一题LeetCode【第7天】

作者: 草稿纸反面 | 来源:发表于2017-01-27 00:25 被阅读210次

    T9. Palindrome Number【Easy

    题目

    确定一个整数是否是回文。不要用到额外的空间。

    思路

    写在注释里~(我好懒哈哈哈)

    好吧,还是举个例子吧。

    示例一: 12321 ,rev 为 123,x 为 12,x==rev/10=12,返回 true
    示例一: 123321 ,rev 为 123,x 为 123,x==rev=123,返回 true
    
    

    代码

    代码取自 Top Solution,稍作注释

    默默感慨这代码真的好短

    public boolean isPalindrome(int x) {
        //因为是整数的回文,所以小于0以及不为0时末尾为0(和首位一定不同)肯定返回false
        if (x<0 || (x!=0 && x%10==0)) return false;
        int rev = 0;
        //通过x%10得到尾数,通过rev*10不断它向前推,x = x/10使x不断缩短,x>rev来控制是只要推一半
        while (x>rev){
            rev = rev*10 + x%10;
            x = x/10;
        }
        //当偶数回文时x=rev是true,当奇数回文时时x==rev/10是true
        return (x==rev || x==rev/10);
    }
    

    补充

    可以看看之前写的 《每天一题LeetCode【第6天】》 里面的思想有相近之处~

    相关文章

      网友评论

          本文标题:每天一题LeetCode【第7天】

          本文链接:https://www.haomeiwen.com/subject/kqjfittx.html