题目:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例1
输入: 121
输出: true
示例2
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
暴力法1:C
由示例可知:因为带负号的回文数最后一位必然是负号,所以,负数都不是回文数。
那么思路很简单:所有大于等于0的整数,只要翻转后相等,就是回文数。
时间复杂度:O(log10(n)),看x有几位
利用到的解法:007.整数翻转
代码:
bool isPalindrome(int x){
bool flag=false; //返回值
int a=x;
long c=0;
int b=0;
if(a>=0)
{
for(int i=0;i<20;i++)
{
b=a%10;
c=c*10+b;
a=a/10;
if(a==0)
break;
}
if(x==c)
flag=true;
}
return flag;
}
运行结果: