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);
        }
    }
  • 相关阅读:
    request和response概念用法
    servlet知识点
    Nginx的安装和配置文件详细说明
    Tomcat优化
    Tomcat安装和常见问题
    WEB服务器和tomcat介绍
    WEB技术相关入门知识点
    前期绑定和后期绑定
    1-4选择题
    1-3选择题
  • 原文地址:https://www.cnblogs.com/mgblog/p/10919361.html
Copyright © 2011-2022 走看看