力扣刷题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingtaoqian8521/article/details/88535051

刷题学习:

160链表相交节点查找 python实现

def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        a,b = 0,0
        p,q = headA,headB
        while headA and headB:
            headA,headB = headA.next,headB.next
            a,b = a+1,b+1
        while headA:
            headA,p = headA.next,p.next
        while headB:
            headB,q = headB.next,q.next
        while p:
            if p==q:
                return p
            p,q = p.next,q.next
           
        return 
    '''
        if not headA or not headB:#空链表检测,无论谁空直接返回
            return 
        p,q = headA,headB
        while p!=q:#并行比较链表节点value,复杂度O(N)
            p = p.next if p else headB
            q = q.next if q else headA
        return p 
        '''

241 class Solution:
    def diffWaysToCompute(self, input: str) -> List[int]:  
        
       #241 分治
        res = []
        ops = {'+':lambda x,y:x+y, '-':lambda x,y:x-y, '*':lambda x,y:x*y}
        for indx in range(1,len(input)-1):
            if input[indx] in ops.keys():             
                for left in self.diffWaysToCompute(input[:indx]):
                    for right in self.diffWaysToCompute(input[indx+1:]):
                        res.append(ops[input[indx]](left,right))                      
        if not res:
            res.append(int(input))
        
        return res

242 字符串判断是否异位相同class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s)!=len(t):
            return False
        s_=list(s)
        t_=list(t)
        s_res=dict.fromkeys(s_,0)
        t_res=dict.fromkeys(t_,0)
        for i in s_:
            if i in s_res.keys():
                s_res[i]+=1
        for j in t_:
            if j in t_res.keys():
                t_res[j]+=1
        if len(s_res.items()&t_res.items())==len(s_res):
            return True
        else:
            return False

232 栈队列

class MyQueue(object):

    def __init__(self):
     
        self.input = []
        self.output = []
        

    def push(self, x):
   
        self.input.append(x)

    def pop(self):
    
        if  self.output:
            return self.output.pop()
        else:
            while self.input:
                self.output.append(self.input.pop())
            return self.output.pop()
        
    def peek(self):
      
        if  self.output:
            return self.output[-1]
        else:
            while self.input:
                self.output.append(self.input.pop())
            return self.output[-1]
    def empty(self):
        
        return len(self.input) == 0 and len(self.output) == 0

猜你喜欢

转载自blog.csdn.net/jingtaoqian8521/article/details/88535051