diff --git a/design_hash_map.py b/design_hash_map.py new file mode 100644 index 00000000..cf49451e --- /dev/null +++ b/design_hash_map.py @@ -0,0 +1,42 @@ +class MyHashMap: + def __init__(self): + self.primary_buckets = 1000 + self.secondary_buckets = 1001 + self.storage =[None for i in range(self.primary_buckets)] + + def primary_hash(self, key:int)->int: + return key%self.primary_buckets + + def secondary_hash(self, key:int)->int: + return key//self.primary_buckets + + + def put(self, key:int, value:int)->None: + primary_key = self.primary_hash(key) + + if self.storage[primary_key] == None: + self.storage[primary_key] = [None for i in range(self.secondary_buckets)] + secondary_key = self.secondary_hash(key) + self.storage[primary_key][secondary_key] = value + + else: + self.storage[primary_key][self.secondary_hash(key)]= value + + + def get(self, key:int)->int: + primary_key = self.primary_hash(key) + + if self.storage[primary_key]== None or self.storage[primary_key][self.secondary_hash(key)] == None: + return -1 + else: + return self.storage[primary_key][self.secondary_hash(key)] + + def remove(self, key:int)->None: + primary_key = self.primary_hash(key) + + if self.storage[primary_key]== None: + return + else: + self.storage[primary_key][self.secondary_hash(key)] = None + + diff --git a/design_queue_using_stacks.py b/design_queue_using_stacks.py new file mode 100644 index 00000000..03c526b1 --- /dev/null +++ b/design_queue_using_stacks.py @@ -0,0 +1,32 @@ +class MyQueue: + + def __init__(self): + self.in_stack =[] + self.out_stack = [] + + + def push(self, key)->None: + self.in_stack.append(key) + + + def pop(self)->None: + if not self.out_stack: + while self.in_stack: + self.out_stack.append(self.in_stack.pop()) + + return self.out_stack.pop() + + + def peek(self)->int: + if not(self.out_stack): + while(self.in_stack): + self.out_stack.append(self.in_stack.pop()) + return self.out_stack[-1] + + def empty(self)->bool: + if self.in_stack ==[] and self.out_stack==[]: + return True + return False + + +