| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import os, argparse
- def get_marker_index(line, window_length):
- marker_window = []
- for i in range(len(line)):
- c = line[i]
- marker_window.append(c)
- if len(marker_window)>=window_length:
- if only_uniques(marker_window):
- return i+1
- del marker_window[0]
- def only_uniques(list):
- return len(list) == len(set(list))
- def solve_task(lines):
- for line in lines:
- print(f"First task: {get_marker_index(line, 4)}")
- print(f"Second task: {get_marker_index(line, 14)}")
- def read_lines(filename):
- lines = []
- with open(filename) as infile:
- for raw_line in infile:
- line = raw_line.rstrip()
- lines.append(line)
- return lines
- def parse_arguments():
- parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
- parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
- args = parser.parse_args()
- return args
- def main():
- args = parse_arguments()
- lines = read_lines(args.filename)
- solve_task(lines)
- if __name__ == "__main__":
- main()
|