回文数
LeetCode:回文数
题目描述:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例:
输入: 121
输出: true
思想:
- x%10得到尾数,x/d(d为10的x的位数次方)得到首位数字,比较二者是否相同;
- 注意:循环条件必须是x>0而不是x>10。当x为个位数时,如果是中心位置必然是true,但如果是1000021这种情况(不是回文数),x最后为2,此时x%10跟x/d不相等需要再判断一轮。
代码:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0){
return false;
}
int d = 1,m,n;
while(x/d>=10) d*=10;
while(x>0){
m = x%10;
n = x/d;
if(m == n){
x=(x-m*d)/10;
d=d/100;
}else{
return false;
}
}
return true;
}
};
原文地址:https://www.cnblogs.com/buptleida/p/12624843.html
时间: 2024-10-09 09:51:57