""" word1 = word[0::2] word2 = word[1::2] return in_bisect(word_list, word1) and in_bisect(word_list, word2) def interlock_general(word_list, word, n=3): """Checks whether a word contains n interleaved words. word_list: list of strings word: string n: number of interleaved words """ wordlist = [] for i in range(n): wordlist.append(word[i::n]) for wordinlist in wordlist: if not in_bisect(word_list, wordinlist): return False return True if __name__ == '__main__': word_list = make_word_list() for word in word_list: if interlock(word_list, word): print(word, word[::2], word[1::2]) for word in word_list: if interlock_general(word_list, word, 3): print(word, word[0::3], word[1::3], word[2::3])
odds = word[1::2] return in_bisect(word_list, evens) and in_bisect(word_list, odds) def interlock_general(word_list, word, n=3): """Checks whether a word contains n interleaved words. word_list: list of strings word: string n: number of interleaved words """ for i in range(n): inter = word[i::n] if not in_bisect(word_list, inter): return False return True if __name__ == '__main__': word_list = make_word_list() for word in word_list: if interlock(word_list, word): print(word, word[::2], word[1::2]) for word in word_list: if interlock_general(word_list, word, 3): print(word, word[0::3], word[1::3], word[2::3])