From 50878d0b85d4c727e56b2d36bd835e6af1bc3249 Mon Sep 17 00:00:00 2001 From: marina <138340846+bt3gl-cryptography@users.noreply.github.com> Date: Mon, 31 Jul 2023 10:50:05 -0700 Subject: [PATCH] Create random_set.py --- sets/random_set.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sets/random_set.py diff --git a/sets/random_set.py b/sets/random_set.py new file mode 100644 index 0000000..3dc2a4c --- /dev/null +++ b/sets/random_set.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + +import random + +class RandomizedSet: + + def __init__(self): + self.set = [] + self.dict = {} + + def insert(self, val: int) -> bool: + if val in self.dict: + return False + self.set.append(val) + self.dict[val] = len(self.set) + return True + + def remove(self, val: int) -> bool: + if val in self.dict: + index = self.dict[val] + self.set[index] = self.set[-1] + self.set.pop() + del self.dict[val] + return True + return False + + def get_random(self) -> int: + return random.choice(self.set) +