判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121 输出: true
示例 2:
输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。
思路:1.先考虑负数,如果是负数,必定不是回文。
2.考虑是不是0,
3.将其转换为字符类型,然后用双指针,就过了。时间复杂度O(n).菜菜的感觉...
代码:
bool isPalindrome(int x) { char a[105]; int j=0; if(x<0) return false;//负数判断 else if(x==0) return true;//0的判断 else { while(x)//转为字符类型 { a[j++]=x%10; x/=10; } int start=0,end=j-1;//双指针做个遍历. for(int i=0;i<j/2;i++) { if(a[start++]!=a[end--]) return false; } return true; } }