palindrome-number LeetCode(java实现)
第一种方法
1.负数或者整除10的数直接返回false;
2.将整型数转换为char类型数组,然后二分策略进行比较左右两侧字符是否相同,相同返回true,否则false;
class Solution {
public boolean isPalindrome(int x) {
if(x<0||(x!=0&&x%10==0))
return false;
String s = x+"";
char[]c = s.toCharArray();
int n = c.length;
for(int i = 0;i<n/2;i++){
if(c[i] != c[n-i-1])
return false;
}
return true;
}
}
第二种方法
此解法与整型数反转原理相同,将输入整型数反转,若反转后的数与原始相等,则返回true;
class Solution {
public boolean isPalindrome(int x) {
if(x<0||(x!=0&&x%10==0))
return false;
int reverse = 0;
int temp = x;
while(temp!=0){
reverse = reverse * 10 + temp % 10;
temp = temp/10;
}
return reverse == x;
}
}