[TOC]
P009 Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.
思路分析
- 负数==>false
- 从两头对数字逐渐切割,一旦有不同的==>false
代码
java
public class Solution009 {
public boolean isPalindrome(int x) {
if (x < 0)
return false;
else if (x <= 9)
return true;
int base = 1;
// 取得最高位的级数base=power(10,n)
while (x / base >= 10)
base *= 10;
while (x != 0) {
int left = x / base;
int right = x % 10;
if (left != right)
return false;
x -= base * left;// 去掉最高位
x /= 10;// 去掉最低位
base /= 100;// 去掉了两位数,base/100
}
return true;
}
}
python
class Solution009(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
if x < 0:return False
elif x <= 9 :return True
base = 1
while x / base >= 10:
base *= 10
while x != 0:
l = x / base
r = x % 10
if l != r:return False
x -= l * base
x /= 10
base /= 100
return True
网友评论