力扣第9题-- 回文数

在这里插入图片描述
这一题可以借助 第7题–数字反转

然后通过反转数字和原先数字比较,如果相等则说明是回文

解法一:利用前面的数字反转

class Solution {
    
    
    public boolean isPalindrome(int x) {
    
    
        if(x<0){
    
    
            return false;
        }
        int t=x;
        int ans = 0;
        while (x != 0) {
    
    //说明没有移除完
            if ((ans * 10) / 10 != ans) {
    
     // 处理过程中如果遇到越界则会返回0;
                ans = 0;
                break;
            }
            ans = ans * 10 + x % 10; // 得到反转的整数值
            x = x / 10;//移除一位
        }
        return t == ans;
    }
}

解法二:例如java的api(这种方式推荐)

利用StringBuilder和StringBuffer提供的api

class Solution {
    
    
    public boolean isPalindrome(int x) {
    
    
        if(x<0){
    
    
            return false;
        }
        String reverseStr = new StringBuilder(String.valueOf(x)).reverse().toString();
        return reverseStr.equals(String.valueOf(x));
    }
}

解法二简单,但是需要有一定的知识面,首先要对StringBuilder、StringBuffer比较熟悉,知道有一个reverse方法

猜你喜欢

转载自blog.csdn.net/qq_41813208/article/details/109301571