美文网首页
9. 回文数(Java)三种方法

9. 回文数(Java)三种方法

作者: 软萌白甜Hedy | 来源:发表于2019-08-18 10:53 被阅读0次

题目

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:你能不将整数转为字符串来解决这个问题吗?

解题

方法一:反转整数

public boolean isPalindrome(int x) {
      //看完这道题,首先想到的是跟昨天的反转整数类似的想法,
        // 即反转之后判断跟原数是否相等,即相等就是回文数;
        //先排除几种特殊情况:
        if(x<0){
            return false;
        }
        if(x==0){
            return true;
        }
        int rev= 0;
        int tmp = x;
        while (tmp!=0){
            int p = tmp%10;
            tmp=tmp/10;
            rev = rev * 10 +p ;
        }
        return rev ==x;
}

结果

执行用时 :15 ms, 在所有 Java 提交中击败了92.36%的用户
内存消耗 :37.9 MB, 在所有 Java 提交中击败了85.99%的用户

方法二:转化成字符串

public boolean isPalindromeToString(int x){
        //将x转化成字符串
        String s = String.valueOf(x);
        //两个指针,一个从0开始 ,一个从末尾开始
        int i = 0;
        int j = s.length()-1;
        //i++和j--循环,拿出每一位比较,如果不相等,则不是回文数
        while(i<j){
            if(s.charAt(i++)!=s.charAt(j--)){

                return false;
            }
        }
        return true;
}

结果

执行用时 :19 ms, 在所有 Java 提交中击败了88.43%的用户
内存消耗 :38.6 MB, 在所有 Java 提交中击败了84.85%的用户

方法三:转化成char数组

public boolean isPalindromeToChar(int x ){
       //排除特殊情况
       if(x<0||x%10==0 && x!=0){
           return false;
       }
       Boolean result= false;
        //转为数组
       char[] chars = String.valueOf(x).toCharArray();
        //从第一位和最后一位开始循环比较
       for(int i =0;i<chars.length;i++){
            if(chars[i]==chars[chars.length-1-i]){
                result= true;
            }else {
                result= false;
                break;
            }
       }
       return result;
}

结果

执行用时 :22 ms, 在所有 Java 提交中击败了86.39%的用户
内存消耗 :39.4 MB, 在所有 Java 提交中击败了80.84%的用户

相关文章

  • 【LeetCode通关全记录】9. 回文数

    【LeetCode通关全记录】9. 回文数 题目地址:9. 回文数[https://leetcode-cn.com...

  • 9. 回文数(Java)三种方法

    题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 1...

  • 回文数最优解

    回文数 非回文数 JAVA 解法

  • 9.回文数-java实现

    第9题:回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:...

  • 9. 回文数

    20180923-摘抄自9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是...

  • leetcode

    9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 class...

  • 9. 回文数

    9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1:...

  • [腾讯精选练习50题][2]LeetCode9

    9. 回文数 题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例...

  • LeetCode 9. 回文数

    9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1:...

  • 09. 回文数

    9. 回文数 难度:简单 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。...

网友评论

      本文标题:9. 回文数(Java)三种方法

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