LeetCode腾讯精选练习50——第二天

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

class Solution:
    def reverse(self, x: int) -> int:
        if x>0:
            a = str(x)
        else:
            a = str(-x)+'-'
        a = int(a[::-1])
        if a>=-2**31 and a<=2**31-1:
            return a
        else:
            return 0

运行结果:

题目8:字符串转换整数
请你来实现一个 atoi 函数,使其能将字符串转换成整数
题解:

class Solution:
    def myAtoi(self, s: str) -> int:
        return max(min(int(*re.findall('^[\+\-]?\d+', s.lstrip())), 2**31 - 1), -2**31)

·使用正则表达式 ^:匹配字符串开头,[+-]:代表一个+字符或-字符,?:前面一个字符可有可无,\d:一个数字,+:前面一个字符的一个或多个,\D:一个非数字字符
·max(min(数字, 231 - 1), -231) 用来防止结果越界
运行结果:

题目9:回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
题解:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        x = str(x)
        if x == x[::-1]:
            return True
        else:
            return False

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44315884/article/details/112530692