python学习——leetcode第七题Reverse Integer
来源:互联网 发布:项目数据分析师含金量 编辑:程序博客网 时间:2024/06/05 03:25
题目说明:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
翻译过来:
给一个数字,将其反转过来,超过2**31的话,就返回0
我的解法还停留在高中数学阶段,按照数学的方法进行解答,比如123,首先得到除以10的余数,3,将其乘以100……依次进行。对于负数的话,转化成正数,按照同样的方式进行计算。
将数学语言翻译成程序语言为:
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ a = 0 if x >= 0: b = len(str(x)) for i in range(b): a = a + (x%10) * (10**(b-i-1)) x = x // 10 if a > 2**31: return 0 else: return a else: y = abs(x) b = len(str(y)) for i in range(b): a = a + (y%10) * (10**(b-i-1)) y = y // 10 if a > 2**31: return 0 else: return -a
很繁琐,很复杂,完全没有python之美。
看看别人的回答吧:
def reverse(self, x): s = cmp(x, 0) r = int(`s*x`[::-1]) return s*r * (r < 2**31)
简直美的不要不要的,将该数字转化成字符串,采用切片的方法对其进行反转,最后返回的结果还包含一个判断语句。
很明显自己还有很长的路要走!
注:
cmp(x,y) 函数,比较x,y两个数值的大小,若x>y,则返回1;若x<,返回-1;x=y,返回0.
不过cmp(x,y) 函数在python3.0中被取消了。
可以用operater模块来代替,具体用法,可以查找相关参考文档。
阅读全文
0 0
- python学习——leetcode第七题Reverse Integer
- leetcode第七题(easy)——Reverse Integer
- LeetCode第七题,Reverse Integer
- leetcode第七题:Reverse Integer
- Reverse Integer LeetCode 第七题
- leetcode 第七题:Reverse Integer
- leetcode第七题Reverse Integer (java)
- LeetCode 第7题 Reverse Integer (easy)——python
- leetcode—Reverse Integer
- leetcode-Reverse Integer-python
- Reverse Integer leetcode python
- 【Leetcode】【python】Reverse Integer
- LeetCode算法题——Reverse Integer
- LeetCode——Reverse Integer
- LeetCode——Reverse Integer
- LeetCode——Reverse Integer
- LeetCode——Reverse Integer
- leetcode——Reverse Integer
- Webstorm安装、破解、使用
- 函数的调用过程(栈帧)
- oracle函数row_number() over ( )的简单使用
- 继承与多态中常见的问题(二)
- 触摸精灵手机按器 破解版
- python学习——leetcode第七题Reverse Integer
- I/O模型入门
- 文章标题
- Intellij IDEA生成foreach的快捷键
- 系统开发与运行
- 任务布置之前端相关
- PAT乙级1002—写出这个数
- KNN
- 求1的个数(非dp)