Leetcode 7 Reverse Integer
来源:互联网 发布:大疆一键全景软件下载 编辑:程序博客网 时间:2024/04/30 14:04
Reverse Integer
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Solution1
- 像这种有可能会超出数据类型范围的情况,一般有两种比较好的解决办法:一种是用一个可以表示更大的数据类型,比如这里用long类型;另一种是用字符串去模拟大数,这种方法能够应对更大规模的数。
- 不用考虑超出范围后,这道题便变得非常简单了。如下:
public class Solution { public int reverse(int x) { long result = 0L; boolean flag = false; if(x<0){ flag = true; x *= -1; } while(x!=0){ result = 10*result+(x%10); x /= 10; } if(flag) result *= -1; if(result<Integer.MIN_VALUE||result>Integer.MAX_VALUE) return 0; return (int)result; }}
- 当然,也可以对负数不做任何处理直接使用也可以,这样一来代码更加的简单易懂。如下:
public class Solution { public int reverse(int x) { long result = 0L; while(x!=0){ result = 10*result+(x%10); x /= 10; } if(result<Integer.MIN_VALUE||result>Integer.MAX_VALUE) return 0; return (int)result; }}
Solution2
- 针对这道题,也有一种方法可以不用解法一中的用一个更大范围的数去表示,而是直接在运行的时候就判断我即将要产生的数是否超出范围了, 如果在这个过程中,即将要产生的数超出范围了,那么可以直接返回0,代码如下:
public class Solution { public int reverse(int x) { int result = 0; boolean flag = false; if(x<0){ flag = true; x *= -1; } while(x>0){ if(result>Integer.MAX_VALUE/10||result*10>Integer.MAX_VALUE-x%10) return 0;//前一个判断不能用result*10>Integer.MAX_VALUE result = 10*result + x%10; x /= 10; } return flag?-1*result:result; }}
- 但是像这种方法,一般除非特殊要求不建议使用,因为没有解法一来得直观易懂,并且比较容易出错。
0 0
- LeetCode 7 - Reverse Integer
- LeetCode(7) Reverse Integer
- leetcode 7REVERSE 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
- 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
- 线程(1)----线程停止
- 【西祠日志】【08】周五周五,一周又结束,有点困惑未了
- [Leetcode 229, Medium] Majority Element II
- 如何搭建Struts2项目
- Android开发笔记--WIFI状态判断
- Leetcode 7 Reverse Integer
- N. Find a way
- 数据挖掘工程师笔试及答案整理
- HDU空心三角形
- Win7/Win8下双击运行jar程序的方法
- 1212 Big Number
- 11.2.0.4.1RAC Installation Guid for RHEL6
- Vuforia SDK---- AR开发vuforia实现拍照截屏功能
- 阿里电话面试问题----100万个URL如何找到出现频率最高的前100个?