Skip to content

Instantly share code, notes, and snippets.

@finete
Created April 11, 2021 11:02
Show Gist options
  • Save finete/705007f9b5fe01f49df005742c18b1e2 to your computer and use it in GitHub Desktop.
Save finete/705007f9b5fe01f49df005742c18b1e2 to your computer and use it in GitHub Desktop.
Moshe interview - with guy
from random import randint, shuffle
from typing import List, Dict
PEOPLE = ['ADI', 'MOR', 'GUY', 'NOY']
def main(names: List[str]) -> Dict[str, str]:
length = len(names)
gamad_anak = {}
while len(gamad_anak) != length:
for gamad in names:
random_num = randint(0, length)
anak = names[random_num]
if anak != gamad and gamad not in gamad_anak.keys():
gamad_anak[gamad] = names[random_num]
return gamad_anak
def main_better(names: List[str]) -> Dict[str, str]:
length = len(names)
gamad_anak = {}
random_num = randint(0, 2)
for gamad in names:
names_copy = names.copy()
names_copy.pop(names.index(gamad))
for anak in gamad_anak.values():
names_copy.pop(names.index(anak))
anak = names_copy[random_num]
gamad_anak[gamad] = anak
return gamad_anak
def main_best(names: List[str]) -> Dict[str, str]:
length = len(names)
shuffle(names)
gamad_anak = {}
for i, gamad in enumerate(names):
j = 0 if i == length - 1 else i + 1
gamad_anak[gamad] = names[j]
return gamad_anak
if __name__ == '__main__':
main(names=PEOPLE)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment