LEETCODE 7. Reverse Integer 判断溢出的解决方案
来源:互联网 发布:网络大专可以做人事吗 编辑:程序博客网 时间:2024/06/07 03:19
题目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!
If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
要求能判断溢出,若溢出则返回0。
网上的大部分解法是用更长的long型来判断是否超过了int的32位来判断溢出。网上的第二种解法是用String类型来判断,本质还是用了更长的数据类型。
但是这样质保不治本,因为如果题目要求翻转一个64位的long型变量,则没有更大的数据类型(或者永远都可以要求翻转最大的数据类型)。
我的方法是在最后一次“乘以10然后加余数”之前,判断这个值是否接下来会溢出,核心代码如下:
public int reverse(int n) {int initiall = n;int result = 0;int count = 0;for (int ii = 0; initiall != 0; count++) {initiall = initiall / 10;}for (int i = 0; i < count; i++) {if (i == count - 1) {if (result > Integer.MAX_VALUE / 10|| ((result == Integer.MAX_VALUE / 10) && (n % 10 > Integer.MAX_VALUE % 10))) {result = 0;break;}if (result < Integer.MIN_VALUE / 10|| ((result == Integer.MIN_VALUE / 10) && (n % 10 < Integer.MIN_VALUE % 10))) {result = 0;break;}}result = result * 10 + n % 10;n = n / 10;}return result;}
- LEETCODE 7. Reverse Integer 判断溢出的解决方案
- leetcode之7. Reverse Integer(要能存储大数,判断溢出)
- leetcode 7. Reverse Integer(C语言,翻转一个整数,判断是否溢出)19
- LeetCode Reverse Integer (处理溢出)
- 【leetcode】Reverse Integer(考虑溢出问题)
- [LeetCode]7.Reverse Integer
- LeetCode 7. Reverse Integer
- LeetCode --- 7. Reverse Integer
- LeetCode 7.Reverse Integer
- [Leetcode] 7. Reverse Integer
- [Leetcode]7.Reverse Integer
- LeetCode 7.Reverse integer
- [LeetCode] 7.Reverse Integer
- 7. Reverse Integer LeetCode
- leetcode 7. Reverse Integer
- leetcode 7. Reverse Integer
- leetcode 7. Reverse Integer
- Leetcode 7. Reverse Integer
- Step by Step into Spring (AOP)
- sockt练习-文本聊天c/s实现
- HDU 1698 Just a Hook(线段树的区间更新)
- Android设计模式应用--访问者模式
- Apue学习:线程
- LEETCODE 7. Reverse Integer 判断溢出的解决方案
- [3] OFDM符号ofdm_signal
- leetcode 328. Odd Even Linked List
- oj问题二-结构体-职工信息结构体
- iOS 绘制渐变图形 Quartz2D 之Swift
- android进程间通信:使用AIDL
- js如何通过tagname取到标签并改变所有该类标签的样式
- 无法导入dmp文件,imp不是内部或外部命令
- POJ 1094 -- Sorting It All Out (拓扑排序)