import re
classListNode:def__init__(self, val,next=None):
self.val = val
self.next=nextclassMyHashSet:def__init__(self):
self.bucket =[None]*1009defget_hash(self, key:int):return key %1009defadd(self, key:int)->None:
head = self.bucket[self.get_hash(key)]ifnot head:
self.bucket[self.get_hash(key)]= ListNode(key)returnwhile head:
pre = head
if head.val == key:return
head = head.next
pre.next= ListNode(key)returndefremove(self, key:int)->None:
head = self.bucket[self.get_hash(key)]ifnot head:returnelif head.val == key:
self.bucket[self.get_hash(key)]= head.nextreturnwhile head.next:
pre = head
head = head.nextif head.val == key:
pre.next= head.nextreturnreturndefcontains(self, key:int)->bool:
head = self.bucket[self.get_hash(key)]ifnot head:returnFalsewhile head:if head.val == key:returnTrue
head = head.nextreturnFalse# Your MyHashSet object will be instantiated and called as such:# obj = MyHashSet()# obj.add(key)# obj.remove(key)# param_3 = obj.contains(key)
classSolution:deffindRepeatedDnaSequences(self, s:str)-> List[str]:
substr =dict()for i inrange(0,len(s)-9):
key = s[i: i +10]if key notin substr:
substr[key]=0
substr[key]+=1
ans =[]for key in substr.keys():if substr[key]<2:continue
ans.append(key)return ans
"""
# Definition for a Node.
class Node:
def __init__(self, val, prev, next, child):
self.val = val
self.prev = prev
self.next = next
self.child = child
"""classSolution:defflatten(self, head:'Node')->'Node':
p = head
while p:if p.child:
q = p.next
k = self.flatten(p.child)
p.child =None
p.next= k
k.prev = p
while p.next: p = p.next
p.next= q
if q: q.prev = p
p = p.nextreturn head