力扣-算法练习(Python)

    技术2022-07-11  116

    7.整数反转

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例1: 输入: 123 输出: 321 示例2: 输入: -123 输出: -321 示例3: 输入: 120 输出: 21

    思路:利用python字符串的[::-1]进行反转

    参考

    class Solution: def reverse(self, x: int) -> int: flag = -1 if x < 0 else 1 res = flag * int(str(abs(x))[::-1]) return res if (-2**31)<=res<=(2**31-1) else 0 作者:powcai 链接:https://leetcode-cn.com/problems/reverse-integer/solution/jian-dan-cu-bao-by-powcai/ 来源:力扣(LeetCode)

    尝试

    class Solution(object): def reverse(self, x): i = 1 if x > 0 else -1 res = i * int(str(abs(x))[::-1]) return res if (-2**31)<= res <=(2**31) else 0

    总结:

    先根据正负数设置符号位abs()取绝对值,再str()转换为字符串后,使用[::-1]将值反转,再int()转换为整数,与符号位相乘获取最终结果在返回时判断是否溢出,如果溢出则返回0

    借鉴大佬的想法,自己写不出这么简洁=,=||

    Processed: 0.011, SQL: 9