题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
代码解析: if(y>INT_MAX/10||y<INT_MIN/10),防止越界。
代码:
class Solution {
public:
int reverse(int x) {
if(x/10==0) return x;
int y=0;
while(x){
if(y>INT_MAX/10||y<INT_MIN/10)
return 0;
y=y*10 + x%10;
x/=10;
}
return y;
}
};
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
代码解析:y不能用int型,因为会溢出。
代码:
class Solution {
public:
bool isPalindrome(int x) {
long y=0;
int quo=x;
while(quo){
y=10*y + quo%10;
quo/=10;
}
return x==y&&x>=0;
}
};