zoukankan      html  css  js  c++  java
  • LeetCode第九题—— Palindrome Number(判断回文数)

    题目描述

    Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

    Example 1:

    Input: 121
    Output: true
    

    Example 2:

    Input: -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    

    Example 3:

    Input: 10
    Output: false
    Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

    My solution(10ms,36.5MB)

    整形转换成字符型,然后进行颠倒转换

    class Solution {
        public boolean isPalindrome(int x) {
            if(x<0){
                return false;
            }else{
                String a = x + "";
                String aReverse = new StringBuilder(a).reverse().toString();
                if(a.equals(aReverse)){
                    return true;
                }else{return false;}
            }
        }
    }

    Other solution(6ms,35.1MB):

    这个方法很神奇啊!Ψ( ̄∀ ̄)Ψ

    先排除负数,然后把整数分成两个部分,x为前一半,rev为后一半,例:32499423

    并且rev还是已经倒转过后的数字,即3249

    最后比较一下两个是否相同


    如果是奇数个数字,例:12321

    则rev为123,x为12

    然后比较123/10=1212是否相等

    class Solution {
       public boolean isPalindrome(int x) {
            if (x<0 || (x!=0 && x%10==0)) return false;
            int rev = 0;
            while (x>rev){
                rev = rev*10 + x%10;
                x = x/10;
            }
            return (x==rev || x==rev/10);
        }
    }
  • 相关阅读:
    获取文件夹下的所有子文件,读取TXT文档
    360笔试
    刷题总结
    背包问题
    二叉树的创建、层次遍历、前序遍历、中序遍历、后序遍历
    今日头条面试
    面试题目
    Java高并发秒杀优化
    配置tomcat解压版
    环境变量设置:
  • 原文地址:https://www.cnblogs.com/mgblog/p/10919361.html
Copyright © 2011-2022 走看看