CheckIO

CheckIO: Repeating decimals

def convert(numerator, denominator): to_str = lambda L: ”.join(map(str, L)) decimals, remains = [], [] integer, remain = numerator // denominator, numerator % denominator remains.append(remain) while True: quotient, remain = remain * 10 // denominator, remain * 10 % denominator decimals.append(quotient)…

CheckIO: Broken Clock

from datetime import datetime, timedelta import re def to_sec(unit): dct = {‘second’: 1, ‘minute’: 60, ‘hour’: 3600} m = re.compile(‘^(second|minute|hour)’) return dct[m.match(unit).group()] def broken_clock(starting_time, wrong_time, error_description): a, b, c, d = error_description.replace(‘at ‘, ”).split() err_per_sec = (int(a) * to_sec(b)) /…

CheckIO: Pattern Recognition

import itertools as it def checkio(pattern, image): pattern_height, pattern_width = len(pattern), len(list(zip(*pattern))) image_height, image_width = len(image), len(list(zip(*image))) scan = lambda: it.product(range(pattern_height), range(pattern_width)) for i, j in it.product(range(image_height), range(image_width)): try: if all(image[i + x][j + y] == pattern[x][y] for (x, y)…

CheckIO: Vigenere Cipher

from string import ascii_uppercase as alpha import itertools as it def decrypt(enc_alpha, key_alpha): if alpha.index(enc_alpha) >= alpha.index(key_alpha): return alpha[alpha.index(enc_alpha) – alpha.index(key_alpha)] else: return alpha[len(alpha) + alpha.index(enc_alpha) – alpha.index(key_alpha)] def find_key(repeated): length = 1 while length <= len(repeated): check, iter_key =…