LeetCode #9 回文数
题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
传送门:LeetCode #9回文数
解法
class Solution {
public:
bool isPalindrome(int x) {
int jud[20];
int p=0,q,now=0;
if(x<0)
return false;
while(x>0){
jud[now++]=x%10;
x/=10;
}
q=now-1;
while(p<q){
if(jud[p]!=jud[q])
return false;
p++;
q--;
}
return true;
}
};
进阶
你能不将整数转为字符串来解决这个问题吗?
解法
将后一半转化为数字,跟前一半进行比较。
class Solution {
public:
bool isPalindrome(int x) {
if(x<0 || (x % 10 == 0 && x != 0))
return false;
int y=0;
while(x>y){
y*=10;
y+=(x%10);
x/=10;
}
if(x==y||x==y/10)
return true;
return false;
}
};