• [^] # Re: Jour 2

    Posté par . En réponse au journal Advent of Code 2025. Évalué à 2.

    Je mets le code, même si je ne lui trouve rien d'intéressant:

    def is_invalid_p1(n):
     s = str(n)
     m = len(s) // 2
     return s[:m] == s[m:]
    def chunk_str(s, l):
     for i in range(0, len(s), l):
     yield s[0+i:l+i]
    def is_invalid_p2(n):
     s = str(n)
     l = len(s)
     for m in range(1,1+(l//2)):
     if (l%m) == 0: # if str can be chunked equally
     a = chunk_str(s,m)
     b = chunk_str(s,m)
     next(b)
     if all(u==v for (u,v) in zip(a,b)):
     return True
     return False
    ans1 = ans2 = 0
    for line in open(0).read().split(','):
     f, t = line.split("-")
     f = int(f)
     t = int(t)
     for i in range(f, t+1):
     if is_invalid_p1(i):
     ans1 += i
     if is_invalid_p2(i):
     ans2 += i
    print(ans1, ans2)

    (C'est dans ces moments que j'aimerai que linuxfr supporte le details/summary).