CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

Je préfère les bools ! #240

Open NT-me opened 2 years ago

NT-me commented 2 years ago
# 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))