题目:(2)ReverseInteger
问题描述:
Given a 32-bit signed integer, reverse digits of an integer.
给定一个32位有符号整数,输出整数的反转数字。
Example:
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
方法一:
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
ans = 0
sign = 1 if x > 0 else -1
x = abs(x)
while x > 0:
ans = ans*0 + x%10
x /= 10
return sign*ans
解题思路:
1.整数计数法分为个,十,百,千...利用这个性质,求得各个位置的单个字符;
2.从原整数个位开始递归乘10再加上前一位,得到翻转后的整数;
3.注意正负号的符号问题。
方法二:
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x < 0:
y = -1*int(str(-x)[::-1])
else:
y = int(str(x)[::-1])
if y > 2147483647 or y < 2147483647:
y = 0
return y
解题思路:
1.直接将整数装换成字符串,利用切分特性进行翻转;
2.注意整数的正负性。