[LeetCode OJ][007]Reverse Integer
来源:互联网 发布:淘宝联盟数据采集软件 编辑:程序博客网 时间:2024/05/19 01:13
反转一个整数的数字。
Example1: x = 123, return 321
Example2: x = -123, return -321
你想过吗?
开始写代码之前,这里有几个有价值的问题。思考这些问题会为你加分。
如果整数的最后几个数字是0,输出是什么?如,输入10100。
你是否留意了反转的数字是否溢出?假如输入的32位整数是1000000003,反转之后就会溢出。
当溢出发生时,应该保证函数返回0。
更新(2014-11-10):
增加了测试溢出的用例。
我的想法:
- 方法很简单,就是新数不断乘以10,原数不断除以10,把原数除以10的余数加到新数上。
- 不用字符串反转来投机取巧的话,最后几个数字是0不影响计算结果。
- 新数乘以10之后小于-2147483648或大于2147483647,也就是乘以10之前新数小于-214748364或大于214748364。当新数等于这两个数的时候,原数的最高位不会是8或9,这时不会溢出。
- 用Python不会溢出,其实不用想那么多。但是测试用例要求溢出,所以要在返回之前判断。另外,Python的除法余数是向下取的,所以最好用绝对值算。
C89(6ms):
int reverse(int x){ int answer = 0; while(x) { if(answer < -214748364 || answer > 214748364) { return 0; } answer = answer * 10 + x % 10; x /= 10; } return answer;}
Python2(58ms):
class Solution: # @return an integer def reverse(self, x): negative = True if x < 0 else False answer = 0 x = abs(x) while x: answer = answer * 10 + x % 10 x = x // 10 if negative: answer = -answer if -2147483648 <= answer <= 2147483647: return answer else: return 0
0 0
- [LeetCode OJ][007]Reverse Integer
- 【LeetCode OJ 007】Reverse Integer
- LeetCode OJ:Reverse Integer
- LeetCode OJ - Reverse Integer
- LeetCode OJ : Reverse Integer
- [LeetCode OJ]Reverse Integer
- Reverse Integer | LeetCode OJ
- Leetcode Oj Reverse Integer
- LeetCode OJ Reverse Integer
- LeetCode OJ----Reverse Integer
- LeetCode OJ - Reverse Integer
- LeetCode OJ ---- Reverse Integer
- Leetcode OJ :Reverse Integer
- LeetCode OJ 0 Reverse Integer
- <LeetCode OJ> 7. Reverse Integer
- LeetCode OJ 7. Reverse Integer
- LeetCode OJ 7. Reverse Integer
- LeetCode OJ(7.Reverse Integer)
- mongoDB的读书笔记(04)_【Replica】(01)_Replica的一些基本概念
- 学习Python(1)
- 数学之路-python计算实战(11)-机器视觉-图像增强
- 计算未来:年轻程序猿如何凑够540万供老年花费?
- CF 518B(Tanya and Postcard-计数统计)
- [LeetCode OJ][007]Reverse Integer
- Java连接数据库加载驱动
- android版本号版本名
- android Binder讲解
- EntityFramework——Map之初露锋芒(一)
- oracle优化常用经典参考
- poj 1717 背包dp(翻转骨牌的最少次数)
- JDK安装后 没有tools.jar 和dt.jar包的解决办法
- shell 字符串