题目链接:https://leetcode-cn.com/problems/palindrome-number/description/
回文数简而言之就是对称的数(负数按题目要求不是),因为上一个题目是反转整数很自然的就想到了直接反转之后判断。
bool isPalindrome(int x)
{
int out = 0,in = x;
int temp;
if(x<0)
return false;
while(x)
{
int temp = out*10 + x%10;
x = x/10;
out=temp;
}
if(out==in)
return true;
else
return false;
}
运行是通过的,再看了答案后发现只需要反转后半段数字即可(若为奇数,则将x/10后判断)
bool isPalindrome(int x)
{
if(x<0||x % 10 == 0 && x != 0)
return false;
int reverNum = 0;
while(x>reverNum)
{
reverNum = reverNum*10 + x%10;
x=x/10;
}
return (x==reverNum || x==reverNum/10);
}
收货:做题的时候视野应该更广阔,不能惯性地想问题。