Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

27 lines
638B

  1. import itertools
  2. az = string.ascii_lowercase
  3. trip = re.compile('|'.join(''.join(abc) for abc in zip(az, az[1:], az[2:])))
  4. iol = re.compile(r'i|o|l')
  5. dup = re.compile(r'(.)\1.*(.)\2')
  6. def is_valid(code):
  7. return trip.search(code) and not iol.search(code) and dup.search(code)
  8. def as_int(S):
  9. return sum((ord(c) - 97) % 26 * 26 ** i for i, c in enumerate(S[::-1]))
  10. def as_str(N):
  11. return ''.join(chr(N // 26 ** i % 26 + 97) for i in range(8))[::-1]
  12. code, = df.read_text().splitlines()
  13. n = as_int(code)
  14. generator = filter(is_valid, (as_str(n + i) for i in itertools.count()))
  15. ans1 = next(generator)
  16. ans2 = next(generator)