不难想到将数字转换成字符串进行回文字符串的判断。
对于数字,有比较巧妙的办法:
- 将数字每次除以10作为前一半
- 将数字每次对10取模作为后一半
- 判断前一半和后一半是否相等
public boolean palindrome(long num) {
if (num < 0 || (num % 10 == 0 && num != 0))
return false;
long x = 0;
while (num > x) {
x = x * 10 + num % 10;
num /= 10;
}
return x == num || num == x / 10;
}