参考资料:https://www.cnblogs.com/grandyang/p/4125588.html
相关知识:
1.INT_MAX
2.除法与取余
3.三目运算符
解法一
class Solution {
public:
int reverse(int x) {
int result=0;
while (x!=0){
if(abs(result) > INT_MAX/10) return 0;//保证数据翻转过来不会超过最大数
result = result * 10 + x % 10;//对x取余然后加入结果中
x =x/10;//除法会抛弃余数
}
return result;
}
};
编译速度如下
解法二
把判断放在循环之外
class Solution {
public:
int reverse(int x) {
long result=0;
while (x!=0){
result = result * 10 + x % 10;
x =x/10;
}
return (result>INT_MAX || result<INT_MIN) ? 0 : result;//三目运算符
}
};
代码速度有提升
收获
三目运算符的使用
a=x?y:z
如果x为真,则a=y,如果x为假,则a=z。