# -*- coding: utf-8 -*- from abc import ABC from typing import Iterator, Any from aoc import BaseAssignment class Assignment(BaseAssignment, ABC): @property def marker_length(self) -> int: raise NotImplementedError() def run(self, input: Iterator) -> Any: for line in input: for index in range(len(line) - self.marker_length): if ( len(set(line[index : index + self.marker_length])) == self.marker_length ): return index + self.marker_length class AssignmentOne(Assignment): example_result = 7 marker_length = 4 class AssignmentTwo(Assignment): example_result = 19 marker_length = 14