首页 > 其他 > 详细

Palindrome Number

时间:2019-10-09 16:25:58      阅读:94      评论:0      收藏:0      [点我收藏+]

我的思路:首先,求出x的位数,然后用一个数组存储其每一位的数字。接下来,用一个for循环判断是否回文。注意,这里如果得到的数组中的数字是从个位开始到最高位排序的。如果不用for循环判断是否回文,而是将数组中第一个数字作为最高位来求出该数组表示的一个数,会出现溢出的问题,且时间复杂度要更高。

代码:

class Solution {
public boolean isPalindrome(int x) {
if(x<0)
return false;
int y=x,k=1;
while(y>=10){
y/=10;
k++;
}
int[]arr=new int[k];
int z=x;
for(int i=0;i<k;i++){
arr[i]=z%10;
z/=10;
}
boolean flag=true;
for(int i=0;i<k/2;i++)//判断是否回文的for循环
if(arr[i]!=arr[k-i-1]){
flag=false;
break;
}
return flag;
}
}

当前打败了100%JAVA用户的思路:直接用个循环求出倒过来的数的值,将其与原值比较看是否相等

class Solution {
public boolean isPalindrome(int x) {
if(x<0)
return false;
if(x<10)
return true;
int y=0,z=x;
while(z>0){//关键部分
y=y*10+z%10;
z/=10;
}
return x==y;
}
}

 

Palindrome Number

原文:https://www.cnblogs.com/xbc121/p/11642290.html

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