diff --git a/Problem_1.py b/Problem_1.py new file mode 100644 index 00000000..cfb9e2d6 --- /dev/null +++ b/Problem_1.py @@ -0,0 +1,30 @@ +class MyQueue: + + def __init__(self): + self.in_stack = [] + self.out_stack = [] + + def push(self, x: int) -> None: + self.in_stack.append(x) + + def pop(self) -> int: + 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: + return len(self.in_stack) == 0 and len(self.out_stack) == 0 + +myQueue = MyQueue() +myQueue.push(1) +myQueue.push(2) +myQueue.peek() +myQueue.pop() +myQueue.empty() \ No newline at end of file diff --git a/Problem_2.py b/Problem_2.py new file mode 100644 index 00000000..34feaf8c --- /dev/null +++ b/Problem_2.py @@ -0,0 +1,51 @@ +class MyHashMap: + + def __init__(self): + self.buckets = 1000 + self.subbuckets = 1000 + self.my_map = [None] * self.buckets + + def _hash1(self, key): + return key % self.buckets + + def _hash2(self, key): + return key // self.subbuckets + + def put(self, key: int, value: int) -> None: + currentBucket = self._hash1(key) + if self.my_map[currentBucket] is None: + if currentBucket == 0: + self.my_map[currentBucket] = [-1] * (self.subbuckets + 1) + else: + self.my_map[currentBucket] = [-1] * (self.subbuckets) + currentSubBucket = self._hash2(key) + self.my_map[currentBucket][currentSubBucket] = value + + def get(self, key: int) -> int: + currentBucket = self._hash1(key) + if self.my_map[currentBucket] is None: + return -1 + else: + currentSubBucket = self._hash2(key) + if self.my_map[currentBucket][currentSubBucket] != -1: + return self.my_map[currentBucket][currentSubBucket] + return -1 + + def remove(self, key: int) -> None: + currentBucket = self._hash1(key) + if self.my_map[currentBucket] is None: + return + else: + currentSubBucket = self._hash2(key) + self.my_map[currentBucket][currentSubBucket] = -1 + + +myHashMap = MyHashMap(); +myHashMap.put(1, 1) +myHashMap.put(2, 2) +myHashMap.get(1) +myHashMap.get(3) +myHashMap.put(2, 1) +myHashMap.get(2) +myHashMap.remove(2) +myHashMap.get(2) \ No newline at end of file