[LeetCode]:Reverse Integer(Only两类解法)
来源:互联网 发布:新疆移动4g网络什么时候开通 编辑:程序博客网 时间:2024/06/06 04:03
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
题目大意比较简单,就是把一个整数反转,这个比较容易,但需要注意的是,返转过后,有可能溢出,所以这题的坑就是在溢出这里。
解法一:先把result定义成long long直接翻转,最后看result是不是在int范围内,如果不是返回0.代码如下:
class Solution {public:int reverse(int x) {long long iResult = 0;for (; x; x /= 10)iResult = (iResult << 1) + (iResult << 3) + x % 10;return iResult > INT_MAX || iResult < INT_MIN ? 0 : iResult;}};
解法一的方案是定义一个范围比数据要大的数,反转过后再比较,这方案的弊端在于,如果输入的数的范围变得更大些呢,你long long不能保存的时候就没法了,什么,__int128?。。。嘛..暂时还不行啦.而且内存多了辣么多了。
class Solution {public:int reverse(int x) {int iResult = 0;for (int y = x; y; y /= 10)iResult = (iResult << 1) + (iResult << 3) + y % 10;//x的反转int reverseOfResult = 0;for (int y = iResult; y; y /= 10)reverseOfResult = (reverseOfResult << 1) + (reverseOfResult << 3) + y % 10;//result的反转(x的二次反转)for (; x != 0 && 0 == x % 10; x /= 10);//去掉x末尾的0return reverseOfResult == x ? iResult : 0;}};
发现网上还有一些其他判定范围的解法。
Github: https://github.com/tsfissure/LeetCode
0 0
- [LeetCode]:Reverse Integer(Only两类解法)
- leetcode: Reverse Integer 菜鸟解法
- LeetCode Palindrome Number && Reverse Integer 解法集合
- LeetCode题解:Reverse Integer (3种解法)
- Reverse Integer问题及解法
- LeetCode:Reverse Integer
- LeetCode: Reverse Integer
- [Leetcode] Reverse Integer
- LeetCode : Reverse Integer
- [LeetCode] Reverse Integer
- Leetcode: Reverse Integer
- LeetCode 7 - Reverse Integer
- leetcode 104: Reverse Integer
- Leetcode : Reverse Integer
- 【leetcode】Reverse Integer
- [LeetCode]Reverse Integer
- LeetCode-Reverse Integer
- [leetcode] Reverse Integer
- boost asio 应用方法学(二)——深入框架
- ThinkPhp3.2.3 多项目 后台 APP接口设计 框架设计
- 帝国cms中的关于对附件乱码,随机数码问题的修改
- android intent 选择文件
- ViewPager-IconPageIndicator导航栏效果(增加点击切换)
- [LeetCode]:Reverse Integer(Only两类解法)
- 排序数组对程序运行的影响
- Js作用域与作用域链详解
- 软件版本: alpha, beta, release, SPx
- 原子操作的好处
- 四、创建界面
- lua中遍历table的几种方式比较
- VS一些设置及编译时候的一些问题以及解决方案
- iOS App检测版本更新