第七题,Reverse Integer。(https://leetcode.com/problems/reverse-integer/description/)
注意事项:翻转之后,数据有可能会超过INT_MAX或者INT_MIN,所以最后用一个大一点的类型保存。
leetcode中的跑的最快的解决办法,8ms:
class Solution {
public:
int reverse(int x) {
int sign=x>=?:-;
long val=x; //注意,此处用long来定义,避免溢出
if(x<)
val=-val;
long num=;
while(val!=){
num=num*+val%;
val/=;
}
num=num*sign;
return (num>INT_MAX||num<INT_MIN)?:num;
}
};
12ms的解决方案:(其实差不多)
class Solution {
public:
int reverse(int x) {
long y = ;
while (x != ){
y = y* + x% ;
x = x / ;
}
return (y<INT_MIN || y>INT_MAX) ? : y;
}
};
我的解决办法:(我觉得差不多啊)
class Solution {
public:
int reverse(int x) {
long result = ; while(x)
{
int temp = x%;
result = result * + temp;
x = x/;
} if (result > INT_MAX || result < INT_MIN)
result = ;
return result;
}
};
Over~~