# Techniquement compter les éléments d'un talbeau dans un autre c'est un peu les comparer et compter les comparaisons
# et une comparaison y'a des booléens, du coup je fais une approche que basée sur des booléens.
import random
prioritaires = ['dwight@dunder-mifflin.com', 'michael@dunder-mifflin.com', 'phyllis@dunder-mifflin.com']
expediteurs = ['dwight@dunder-mifflin.com', 'jul@totemproduction.fr', 'phyllis@dunder-mifflin.com', 'michael@dunder-mifflin.com', 'matthieu@coddity.com']
bad_code = "this code"
def convert_strings_in_bools(strings):
# Je préfère les bools
bools = []
for email in strings:
bools.append(convert_string_to_bools(email))
return bools
def convert_string_to_bools(string_input):
# Je considère que c'est de l'ASCII
ret = []
for letter in string_input:
letter_in_bool = []
for i in range(0, 128):
letter_in_bool.append((len(letter_in_bool).__eq__(-1)))
for i in range(0, ord(letter)):
letter_in_bool[i] = (letter_in_bool[i].__eq__(letter_in_bool[i]))
ret.append(letter_in_bool)
return ret
def compare_letter_bool_array(letter_bool_array_A, letter_bool_array_B):
positions_testees = []
for i in range(0, 128):
positions_testees.append((i.__eq__(i.__add__(-1))))
ret = True
while not check_if_bools_is_fully_true(positions_testees.copy()):
test_index = random.randint(0, 127)
positions_testees[test_index] = (test_index.__lt__(128).__gt__(-1))
if letter_bool_array_A.__ne__(letter_bool_array_B):
ret = (letter_bool_array_A.__eq__(letter_bool_array_B))
return ret
def check_if_bools_is_fully_true(bools):
ret = (isinstance(bools, int))
while bools:
ret = bools.pop()
return ret
def email_existe_dans_la_liste(email, liste_email):
lettre_verifee = []
for lettre in email:
index_lettre = email.index(lettre)
lettre_verifee.insert(index_lettre, (index_lettre.__ne__(email.index(lettre)))) # jsp j'aime bien
for email_a_tester in liste_email:
for lettre_a_tester in email_a_tester:
if compare_letter_bool_array(lettre, lettre_a_tester):
lettre_verifee[index_lettre] = "this code".__eq__(bad_code)
return check_if_bools_is_fully_true(lettre_verifee)
def compteur_de_mails_prioritaires(prioritaires, expediteurs):
bools_prioritaires = convert_strings_in_bools(prioritaires)
bools_expediteurs = convert_strings_in_bools(expediteurs)
res = []
# Pour chacun des email prio on itère sur une lettre a une position donnée et on cherche si
for email in bools_prioritaires:
res.append(email_existe_dans_la_liste(email, bools_expediteurs))
return sum(list(map(lambda a: int(a), res)))
if __name__ == '__main__':
print(compteur_de_mails_prioritaires(prioritaires, expediteurs))