博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]7. Reverse Integer
阅读量:5248 次
发布时间:2019-06-14

本文共 624 字,大约阅读时间需要 2 分钟。

原题链接:

意思是对于给定的数字,调换最高位和最低位,次高位和次低位......然后输出。如果调换数位后超过了32位int表达范围就输出0。

 

我的提交(又不知道从哪位大佬博客看到,以后一定记下来说明出处,我自己代码溢出时出错):

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 /= 10;        }                return result;    }};

思想:计算方法一般都是取余加前面结果*10,重点就是结果溢出时的处理,就是这一行代码:

if (abs(result) > INT_MAX / 10) return 0;

在下一次计算前,判断当前结果绝对值是不是大于INT_MAX / 10,从而预测是不是溢出。这个是在我自己做的时候没想到的(关于溢出处理我还写了超级长的判断,结果还是没通过测试用例)

 

总结:溢出处理

 

转载于:https://www.cnblogs.com/qianzixuan1996/p/8288483.html

你可能感兴趣的文章
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
linux sed命令
查看>>
LeetCode 160. Intersection of Two Linked Lists
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>