判断一个正数是不是回文数。
方法一:32bit正整数最大是个10位十进制数,所以new一个10个元素
的整形数组,从低位到高位依次存入数组,并记录位数,然后比较。
100% test cases passedTotal runtime 3239 ms
public class Solution {
/**
* @param num: a positive number
* @return: true if it's a palindrome or false
*/
public boolean isPalindrome(int num) {
boolean result=true;
int digit=0;
int[] array = new int[10];
while(num!=0){
array[digit]=num%10;
digit+=1;
num/=10;
}
for(int i=0,j=digit-1;i<j;++i,--j){
if(array[i]!=array[j]){
result=false;
break;
}
}
return result;
}
}
方法二:备份num的初始值,然后把num反转存为rst,
比较numBak和rst
100% test cases passedTotal runtime 2867 ms
public class Solution {
/**
* @param num: a positive number
* @return: true if it's a palindrome or false
*/
public boolean isPalindrome(int num) {
boolean isPalindrome=false;
if(num<0){
return false;
}
int numBak=num;//保存num的初始值
int rst=0;
while(num!=0){
rst = rst*10 + num%10;
num/=10;
}//while循环结束后,num==0
if(numBak==rst)
isPalindrome=true;
return isPalindrome;
}
}
网友评论