DW_Leetcode编程实践_Day2

7.整数反转

题目链接:整数反转题目

题目理解:只有个位数的情况直接输出其本身,其他情况要分正负数来讨论。

class Solution:
    def reverse(self, x: int) -> int:
        if -10 < x < 10:
            return x
        str_x = str(x)
        if str_x[0] != "-":
            str_x = str_x[::-1]
            x = int(str_x)
        else:
            str_x = str_x[:0:-1]
            x = int(str_x)
            x = -x
        return x if -2147483648 <x< 2147483648 else 0

DW_Leetcode编程实践_Day2_第1张图片

8.字符串转换整数

题目链接:添加链接描述

题目理解:先获得字符串长度,字符串前面的空格要去掉,字符串遇到的正负号要先取出来,字符串的连续数字要取出。最后将正负号与数字组合。

class Solution:
    def myAtoi(self, str: str) -> int:
        i=0
        n=len(str)
        while i<n and str[i]==' ':
            i=i+1
        if n==0 or i==n:
            return 0
        flag=1
        if str[i]=='-':
            flag=-1
        if str[i]=='+' or str[i]=='-':
            i=i+1
        INT_MAX=2**31-1
        INT_MIN=-2**31
        ans=0
        while i<n and '0'<=str[i]<='9':
            ans=ans*10+int(str[i])-int('0')
            i+=1
            if(ans-1>INT_MAX):
                break
        ans = ans*flag
        if ans>INT_MAX:
            return INT_MAX
        elif ans<INT_MIN:
            return INT_MIN
        else:
            return ans

DW_Leetcode编程实践_Day2_第2张图片

9.回文数

题目链接:回文数题目

题目理解:回文数可以这样理解:前一半内容和后一半内容反过来相同。因此将两部分取出,做比较即可。

class Solution:
    def isPalindrome(self,x:int)->bool:
        s = str(x)
        l = len(s)
        h = l//2
        return s[:h] == s[-1:-h-1:-1]

DW_Leetcode编程实践_Day2_第3张图片

你可能感兴趣的:(leetcode,python)