解题思路-leetcode第七题:整数反转
题目描述:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
解题过程:首先设计一个变量type用于记录输入整数的正负,负数时type=-1,正数时type=1,然后将输入的数取绝对值,再定义一个变量i用于将十位及以上的数增大相应的倍数。然后设计了一个while循环,通过对10取余,得出输入数的每一位的值,通过整除10将输入的数减小相应的倍数,并取整。然后通过不断循环计算出反转后的值,最后判断一下反转后的值有没有超出整数范围,若超出则值为0,最后返回反转后的值。代码如下:
class Solution:
def reverse(self, x: int) -> int:
if x < 0:
type = -1
else:
type = 1
num = abs(x)
i = 10
result = 0
while num != 0:
a = num % 10
result = result*i + a
num = num // 10
if result > 2**31:
result = 0
result = type * result
return result
提交后,通过。