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
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
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
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=''))
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
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=''))