首页 > 其他 > 详细

leetcode回文数题解

时间:2021-03-16 11:37:44      阅读:28      评论:0      收藏:0      [点我收藏+]

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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

思路:

首先所有的负数和尾数为0的数都不是回文数

反转一半的数字与另一半比较

对于数字 1221,如果执行 1221 % 10,我们将得到最后一位数字 1,要得到倒数第二位数字,我们可以先通过除以 10 把最后一位数字从 1221 中移除,1221 / 10 = 122,再求出上一步结果除以10的余数,122 % 10 = 2,就可以得到倒数第二位数字。如果我们把最后一位数字乘以10,再加上倒数第二位数字,1 * 10 + 2 = 12,就得到了我们想要的反转后的数字。 如果继续这个过程,我们将得到更多位数的反转数字。

 1 class Solution {
 2     public boolean isPalindrome(int x) {
 3         if(x<0) return false;//一个数小于0不是回文数
 4         if(x==0) return true;//0是回文数
 5         int i=0;
 6         while(i<x){
 7             i*=10;
 8             i+=x%10;
 9             if(i==0) return false;//结尾为0就不是回文数
10             x/=10;
11         }
12         if(i==x){
13             return true;
14         }
15         else{
16             if(i/10==x){
17                 return true;
18             }
19             else return false;
20         } 
21     }
22 }

 

leetcode回文数题解

原文:https://www.cnblogs.com/yttty/p/14541685.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!