zoukankan      html  css  js  c++  java
  • LeetCode之回文数超详细java讲解

    描述:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。输入:x = 121,输出:true。输入:x = -121,输出:false。解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

    思路一:将x直接转换成字符串,通过first,last下标来从前和从后依次判断对应的字符是否相等,一旦碰到不想的的情况则直接返回false。

    时间复杂度:O(1)

    空间复杂度:O(1)

    public boolean isPalindrome2(int x){
            if(x<0){
                return false;
            }else{
                String str = x + "";  //将x转换成字符串形式
                int l = str.length();   
                for(int i = 0;i<l/2;i++){  //只需要判断前后各一半,故i<l/2
                    if(str.charAt(i) != str.charAt(l-i-1)){  //这个过程自己推一下就明白了
                        return false;
                    }
                }
            }
            return true;
        }

    思路二:进阶,其实也不算有多进阶,就是要你能想到另一种思想解题,开阔思维。之前我们写过整数的翻转,故这一次只需要把整个整数给翻转过来,然后与x(输入值)进行比较,如果不相等则返回false,否则返回true.

    时间复杂度:O(1)

    空间复杂度:O(1)

    public boolean isPalindrome(int x){
            if(x<0){
                return false;
            }else{
                int y = x,temp = 0;
                while(y>0){
                    temp = temp*10 + y%10;
                    y /= 10;
                }
               return x==temp?true:false;
            }

    2021-05-26

  • 相关阅读:
    最近一周的日期选择设置
    使用两个 Windows 窗体 DataGridView 控件创建一个主/从窗体
    WCF使用小例子
    SQL Server中JOIN的用法
    C#设计模式(13)——代理模式(Proxy Pattern)
    SQL四种语言:DDL,DML,DCL,TCL
    Log4Net组件的应用详解
    JSP九大内置对象详解
    Objective-C:自定义Block函数
    C语言:指针的几种形式二
  • 原文地址:https://www.cnblogs.com/liuhuaabcp/p/14812341.html
Copyright © 2011-2022 走看看