标签:move 类型 self ret lock 需要 语句 answer 翻转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
这道题在LeetCode的题目中是非常简单的,尤其是用Python来解决。我们都知道在Python中int类型和str类型是可以相互转换的:int(str)
或者 str(int)
。因此这道题中,我们仅需要将input中的int类型转换为str类型然后翻转字符串即可。
翻转字符串我们用到的方法是str[::-1]
。在这个语句中,‘-1’指的是step(步长)的意思,取负号则表示顺序反向,第一个‘:’和第二个‘:‘前的数字省略,默认取0和len(str),因此起到了翻转字符串的作用。
在翻转字符串后,我们需要注意得到字符串的最后一位是否是‘-‘或‘+‘,如果是的话,则将其调整至新字符串的第一位。最后,我们将字符串转换为int即为最后的答案
class Solution:
def reverse(self, x: int) -> int:
string = str(x)
# Reverse the string
string = string[::-1]
# If the end of the string is '-' or '+', move it to the head of the string
if string[-1] == '-' or string[-1] == '+':
string = string[-1] + string[0:-1]
answer = int(string)
# Check whether the integer is within the legal range of int32
if answer > 2**31-1 or answer < -2**31:
return 0
return int(string)
标签:move 类型 self ret lock 需要 语句 answer 翻转
原文地址:https://www.cnblogs.com/meloyang/p/12299931.html