Nope
marrant ca marche ici : https://rubular.com/r/G0FZK06mg5iNom
ha oui câest zarbe!
bon jâarrĂȘte lâacharnement thĂ©rapeutique : les regex câest vilain
Perso jâai splittĂ© ma chaine autour des espaces et des « : » avant dâappliquer des mini regex sur certains champs. Bcp plus lisible et maintenable
oui jâai lachĂ© aussi lâaffaire, câest peut etre possible mais pas evident. Et surtout ca se contourne avec un if
Voui. On fait comment sinon ?
AprÚs, je peux tout faire en inversé. Que des tests de sorties immédiates.
Ăa Ă©conomise des } mais niveau efficacitĂ©, je sais pas si ça change grand chose.
Honnetement jâai pas vraiment lu lâalgo, mais pour moi câest pas tellement un pb de performance que de lisibilitĂ©. Si jâen arrive lĂ je pense que jâextrais du code dans des sous fonctions (je dis ca de trĂšs loin vu que je code pas dans ce langage)
Sur mes projets, jâai un linter qui crie pour moi et empeche le code de compiler si on arrive Ă un niveau dâimbrication trop important (3 ou 4 je sais plus)
Câest une bonne question. Je vois bien @viewww faire une attaque devant du lisp .
Je nâai aucun problĂšme avec les parenthĂšses
âŠ
mais les accolades, elles me regardent bizarre
Fun fact: on perd 20000 codeurs par jour.
Qui survivra au 6eme jour ???
Y a des chances que vous me perdiez ce WE, pas sur dâavoir le temps
Vraiment sympa.
Jâai tendance Ă ĂȘtre un peu oldschool dans ma maniĂšre dâĂ©crire du code donc jâai toujours un peu de mal avec ces syntaxes, mais une fois quâon a compris câest assez malin.
Je me le garde de cotĂ©, faut que je mâentraine.
Si on rate un jour, on peut le faire le lendemain ? pas sur dâavoir trop de dispo non plus le WE pour le faire.
Oui quand tu veux. Tu peux mĂȘme faire les quizz de 2015 si tu veux
Bon jâai un poil galĂ©rĂ©, et câest mĂ©ga crade, mais it works !
Résumé
def checkValid (field, value) :
validhcl = "0123456789abcdef"
validecl = "ambblubrngrygrnhzloth"
validpid ="0123456789"
if field == "byr" :
if int(value) >= 1920 and int(value) <= 2002 :
return True
if field == "iyr" :
if int(value) >= 2010 and int(value) <= 2020 :
return True
if field == "eyr" :
if int(value) >= 2020 and int(value) <= 2030 :
return True
if field == "hgt" :
if value[-2:] == "in" and (int(value[:-2]) >= 59 and int(value[:-2]) <= 76) :
print(value)
return True
if value[-2:] == "cm" and (int(value[:-2]) >= 150 and int(value[:-2]) <= 193) :
return True
if field == "hcl" :
if value[:1]=="#" and len(value) == 7 :
for s in value[-6:] :
if s not in validhcl :
return False
else :
return False
return True
if field == "ecl" :
if value in validecl :
return True
else :
return False
if field == "pid" :
rB = False
if len(value)!=9 :
return False
else :
for s in value :
if s not in validpid :
return False
return True
if field == "pid" :
return True
for i in inputTable :
passPort = i.split(" ")
goodFields = 0
for fall in passPort :
for f in fields :
if (f in fall.split(":")[0]) and f != "cid" and checkValid(fall.split(":")[0],fall.split(":")[1]):
goodFields += 1
if goodFields == 7 :
goodPass += 1
#print(passPort)
print(goodPass)
Hello,
Le mot du jour est donc DICHOTOMIE
Jâai dĂ» utilisĂ© les exemples aujourdâhui pour dĂ©bugger un peu mon code. Ma solution en Python. Je nâai pas fait de validation dâinputs mais apparemment pas besoin.
Hop voici ma solution, jâai pas du tout galĂ©rĂ© pour la part1, mais pour la part2 jâai du relire 5x lâĂ©noncĂ© pour VRAIMENT comprendre
1ere et 2Ăšme parties :
Résumé
def day5_1(mini,maxi,data):
if data=='':
return [mini,maxi]
else:
if data[0]=='F' or data[0]=='L':
return day5_1(mini,mini+int((maxi-mini)/2),data[1:])
else:
return day5_1(mini+int((maxi-mini)/2)+1,maxi,data[1:])
def day5_2(data):
fulliD = [i for i in range(min(data),max(data))]
return set(fulliD) - set(data)
# main
if __name__ == '__main__':
fichier = open('input.txt', 'r')
linesDeMonFichier = fichier.read()
data = [day5_1(0,127,d[:-3])[0]*8+day5_1(0,7,d[-3:])[1] for d in linesDeMonFichier.split('\n')]
maxId = max(data)
id = day5_2(data)
print(id)
Idem, pas le temps. Je code pendant la pause déjeuner du taff.