leetcode-07-reverse integer-python
2016-04-01 11:35
585 查看
Reverse digits of an integer.
反转一个数,注意符号,溢出范围。题目说的是32位int。
自己的思路:转换成list,先拿出符号,然后不断pop掉的字符加在一起最后如果没溢出就输出。感觉很妙,像堆栈的感觉。
测试通过,很慢。效率低。
看到有一个简洁的。
思路差不多,就是用了字符串[::-1]这个直接反转字符串。
结果:
测试时间比我自己的代码还要长。。72ms vs 84ms。所以内置的一些功能简单方便但是不一定快。
还有一点就是范围溢出问题了。math.pow(a,b)返回a的b次幂。
有符号数所以是31次幂。
反转一个数,注意符号,溢出范围。题目说的是32位int。
自己的思路:转换成list,先拿出符号,然后不断pop掉的字符加在一起最后如果没溢出就输出。感觉很妙,像堆栈的感觉。
class Solution(object): def reverse(self, x): """ :type x: int :rtype: int """ y=list(str(x)) z="" if '-' in y: z+='-' y.remove('-') for i in range(len(y)): z+=y.pop() return int(z) if abs(int(z))<=math.pow(2, 31) else 0
测试通过,很慢。效率低。
看到有一个简洁的。
class Solution: # @return an integer def reverse(self, x): revx = int(str(abs(x))[::-1]) if revx > math.pow(2, 31): return 0 else: return revx * cmp(x, 0)
思路差不多,就是用了字符串[::-1]这个直接反转字符串。
a="hello" b=a[::-1] print(b)
结果:
olleh Press any key to continue . . .
测试时间比我自己的代码还要长。。72ms vs 84ms。所以内置的一些功能简单方便但是不一定快。
还有一点就是范围溢出问题了。math.pow(a,b)返回a的b次幂。
unsigned int: 4294967295(2^32-1) signed int: 2^31-1
有符号数所以是31次幂。
相关文章推荐
- python语言学习4——使用文本编辑器
- mysql导入csv文件,与python连接
- python 学习笔记(2)
- Selenium+Python windows下环境搭建
- Python 学习文章收藏
- python语言学习3 ——第一个python程序
- python中的运算符
- python3抓取百度贴吧帖子
- java 中使用 python外部扩展包pycha
- 初学python(对比java语言不同) 第一篇
- python psutil监控进程
- python语言学习2——安装python
- leetcode-06-zigzag conversion-python
- Python之类
- python常用绘图软件包记录
- python中数据的保存
- 利用Anaconda安装python后,如何安装opencv-python
- Python/Keras如何将给定的数据集打乱
- Python如何进行cross validation training
- Python常用函数