回文数-力扣

Posted XMMAX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回文数-力扣相关的知识,希望对你有一定的参考价值。

 

回文数-力扣

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/palindrome-number 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目描述

 

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

思路

 

  1. 首先应确定,负数必定不是回文数。
  2. 任何一个以0结尾的数(不包括0)必定不是回文数,例10,110,30。
  3. 其次,如果该数(x)数字位数为奇数,那么该数处于最中间位数的数无需进行判断
  4. x若对10取余,则可以求出最后一位数,x除以10,则可以去掉最后一位数,如此循环,则可以将每个数求出。
  5. 那么我们的思路就显而易见了,先设置负数与以0结尾的数返回值为false,接着对其他的数进行判断,设置一个中间量temp,对x进行取余操作的结果进行接收,后续的接收便是temp*10再加上x/10再取余的结果。对上述操作进行循环直至x<=temp即可。
  6. 这里需要强调的是,由于x一直在进行x/10操作,而temp一直在接收x去掉的数,所以循环结束后应注意对x数字个数分情况判断。若x位偶数则直接判断是否相等即可,x为奇数则应对中间量temp进行除以十的操作,以去掉中间的那个数,再进行判断

代码

class Solution 
    public boolean isPalindrome(int x) 
        if(x  < 0 || x%10 ==0 && x != 0)
            return false;
        int temp = 0;
        while(x > temp)
            temp = x % 10 + temp * 10;
            x /= 10;

        
    return x == temp || x == temp / 10;

        
    

提交截图

 

以上是关于回文数-力扣的主要内容,如果未能解决你的问题,请参考以下文章

力扣9. 回文数

9. 回文数(leetcode力扣算法 - java / rust)

9. 回文数(leetcode力扣算法 - java / rust)

力扣——求一组字符中的第一个回文字符

力扣——求一组字符中的第一个回文字符

力扣——求一组字符中的第一个回文字符