from solutions import BaseSolution class Solution(BaseSolution): input_file = "04.txt" def __str__(self): return "Day 4: High-Entropy Passphrases" def validate(self, passphrase, extended=False): words = passphrase.split() if extended: words = ["".join(sorted(w)) for w in words] return sorted(list(set(words))) == sorted(words) def solve(self, puzzle_input): return sum(self.validate(p) for p in puzzle_input.splitlines()) def solve_again(self, puzzle_input): return sum(self.validate(p, True) for p in puzzle_input.splitlines()) if __name__ == "__main__": solution = Solution() solution.show_results()