leetcode python3 简单难度(答案持续更新)

leetcode中国官方网站-题库

https://leetcode-cn.com/problemset/all/


leetcode官网-题库

https://leetcode.com/problemset/all/


参考资料

https://blog.csdn.net/minione_2016/article/details/78855124


0001.Two_Sum


答案

class Solution(object):
    def twoSum(self,nums,target):
        dic = {}
        for i, num in enumerate(nums):
            if target - num in dic:
                return [dic[target - num],i]
            else:
                dic[num] = i


0007.Reverse_Integer


答案1

class Solution(object):
    def reverseInteger(self,n):
        
        rev=0
        n1 = n if n > 0 else -n

        
        #除数余数结合
        while n1:
            rev = rev*10 + n1%10
            n1 = n1//10

            
        if rev > 2**31-1 or rev < -2**31:
            return 0

        return rev if n >0 else -rev


答案2

class Solution(object):
    def reverseInteger(self,n):
        n1 = n if n > 0 else -n
        
        #思路:(1)int转为str;(2)str转为list;(3)翻转list;(4)list转str;(5)str转int
        str1 = str(n1)
        list1 = list(str1)
        list2 = list1[::-1]
        str2 = ''.join(list2)
        n2 = int(str2)
        
        if n2 > 2**31-1 or n2 < -2**31:
            return 0

        return n2 if n > 0 else -n2


0009.Palindrome_Number

答案1

class Solution(object):
    def reverseInteger(self,n):
        
        #思路:(1)int转为str;(2)str转为list;(3)翻转list;(4)判断翻转前后的list是否相同
        str1 = str(n)
        list1 = list(str1)
        list2 = list1[::-1]

        return True if list2 == list1 else False

答案2(进阶)

class Solution(object):
    def reverseInteger(self,n):
        
        #负数一定不是回文数
        if n < 0:
            return False
        
        #思路:除数余数结合,根据翻转后的值与原值是否相等判断该值是否为回文数
        rev = 0
        n1 = n
        while n1 > 0:
            rev = rev*10 + n1%10
            n1 = n1//10
        return rev == n

猜你喜欢

转载自blog.csdn.net/yyy430/article/details/80090490