我采用的策略
-
去除最后面的0
不断进行
x % 10 == 0
判断,如果最后一位为0,则执行x //= 10
。 使用 // 来执行除法,会将产生小数直接抛弃,只剩下整数。 -
判断正数还是负数
正数:直接将数字进行反转
负数:将除负号外进行反转,返回时添加负号 -
数字反转
将数字转化为字符串,使用字符串倒序
x[::-1]
进行反转,反转完成后再转化为 int 类型。其中负数对应的字符串反转要避免符号位,即x[:0:-1]
。 -
判断溢出
最后要判断反转的结果是否在范围内,不在就返回为 0 。 使用 2**31 来计算次方会比 pow() 计算更快。
TIME: 64ms
1 | class Solution: |