Example #1
0
def recoverSecret(triplets):

    first, last = '', ''
    checker = list(zip(*triplets))

    # finding first letter
    for i in checker[0]:
        if i not in (checker[1] + checker[2]):
            first = i

    # finding last letter
    for i in checker[2]:
        if i not in (checker[0] + checker[1]):
            last = i

    # if char has no chars before it
    # in [triplets], then that's the
    # one we need
    while True:

        # removing all occurences of
        # a previously found letter
        triplets = [[x for x in y if x != first[-1]] for y in triplets]
        checker = list(zlo(*triplets))

        if len(checker) > 1:
            for i in checker[0]:
                if i not in list(reduce(lambda x, y: x + y, checker[1:])):
                    first += i
                    break
        else:
            return first + last
Example #2
0
def decrypt(enc, n):

    if not isinstance(enc, str): return None

    part = len(enc) // 2
    for rep in range(n):
        a, b = enc[:part], enc[part:]
        enc = ''.join(j + i for i, j in zlo(a, b, fillvalue=''))
    return enc
Example #3
0
def solve(a, b):

    primes = []
    total = 0

    for i in range(a, b):
        if is_prime(i): primes.append(i)
    for idx, prime in enumerate(primes):
        for p1, p2 in zlo([prime], primes[idx:], fillvalue=prime):
            if check([p1, p2]):
                total += 1

    return total
Example #4
0
def solve(s):
    c = sorted(re.findall('[^aeiou]', s))
    v = sorted(re.findall('[aeiou]', s))
    if abs(len(c) - len(v)) > 1: return 'failed'
    return ''.join(i + j if len(c) <= len(v) else j + i
                   for i, j in zlo(v, c, fillvalue=''))
Example #5
0
def how_many_bees(hive):
    return sum(''.join(x).count('bee') + ''.join(x).count('eeb') for x in hive) + \
           sum(''.join(y).count('bee') + ''.join(y).count('eeb') for y in zlo(*hive, fillvalue = '')) if hive else 0
Example #6
0
from itertools import zip_longest as zlo
from string import digits

interweave = lambda a, b: ''.join((i if i not in digits else '') +
                                  (j if j not in digits else '')
                                  for i, j in zlo(a, b, fillvalue=''))