原题:
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Input: 121 Output: true
Example 2:
Input: -121 Output: false Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: 10 Output: false Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Follow up:
Coud you solve it without converting the integer to a string?
思路:
如有负号直接返回false,其余对x进行反转,对比原答案与反转结果.
c++代码实现:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)
return false;
long res=0, z=x;
while(z)
{
res= res*10+z%10;
z/=10;
}
return res==x;
}
};