您的位置:首页 > 编程语言 > Python开发

[Leetcode]Reverse Integer@python

2018-01-19 17:52 357 查看
Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output:  321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note:

Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

整数反转

解法一:将int整数变成字符串,按list进行翻转,然后再转成int

class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
flag = 0
if x<0:
flag = 1
res = ""
x = str(abs(x))
for i in range(1,len(x)+1):
res += x[-i]
if int(res) > 2147483648:
return 0
if flag == 0:
return int(res)
else:
return -int(res)


解法二:先把数字求绝对值x,然后x%10取最后一位,然后ans = ans*10 + x%10,加上最后一位。然后x去掉最后一位。知道x = 0.要注意的时候,超出32位int类型的时候设置等于0就行了。

class Solution:
# @return an integer
def reverse(self, x):
answer = 0
sign = 1 if x > 0 else -1
x = abs(x)
while x > 0:
answer = answer * 10 + x % 10
x /= 10
return sign*answer
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: