Check a positive number is a palindrome or not.
A palindrome number is that if you reverse the whole number you will get exactly the same number.
Notice
It's guaranteed the input number is a 32-bit integer, but after reversion, the number may exceed the 32-bit integer
Example
11, 121, 1, 12321 are palindrome numbers.
23, 32, 1232 are not palindrome numbers.
思路
可以用两个指针一个头一个尾。分别向中间走。
另一个巧妙的办法是:如果这个数是palindrome,那么把它从当中切开,前一半和后一半正好相反。
那么我们其实只要看一半就可以。
Code
public class Solution { /** * @param num a positive number * @return true if it's a palindrome or false */ public boolean palindromeNumber(int num) { // Write your code here if (num < 0 || (num >= 10 && num % 10 == 0)) { return false; } int sum = 0; while (num > sum) { sum = sum * 10 + num % 10; num = num / 10; } return sum / 10 == num || sum == num; } }