码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode题解 #9 Palindrome Number

时间:2015-12-04 01:05:42      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

题目大意:给定一个整型(即int),判断其是否为回文数

 

首先负数肯定不是回文了,只要判断正数就好。

 

将数字不断%10/10一个个取出来,放到一个数组中。然后再从数组两头开始往中间比较,有不等的马上返回false就好。

 

public static boolean isPalindrome(int x) {

if(x<0)
return false;




int [] data = new int [13];
int count = 0;

int temp = 0;

while(x>0){

data[count]=x%10;
x/=10;
count++;


}


for(int i=0,j=count-1;i<j;i++,j--){

if(data[i]!=data[j])
return false;


}





return true;

}

 

改进办法,在做成数组的时候,最后还要从两头往中间遍历,虽然int的位数不长,但是毕竟还是O(n)

所以不用数组了,直接构造从右边开始构造一个数,然后直接比较就好了。

bool isPalindrome(int x) {

// 负数肯定不为回文数

if (x < 0) return false;

// 将其反过来存放

long y = 0, z = x;

while (x > 0) { y = y * 10 + x % 10; x = x / 10; }

// 返回判断结果

return y == z;

}

LeetCode题解 #9 Palindrome Number

标签:

原文地址:http://www.cnblogs.com/wzben/p/5017998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!