aAndB.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import os, argparse
  2. def get_marker_index(line, window_length):
  3. marker_window = []
  4. for i in range(len(line)):
  5. c = line[i]
  6. marker_window.append(c)
  7. if len(marker_window)>=window_length:
  8. if only_uniques(marker_window):
  9. return i+1
  10. del marker_window[0]
  11. def only_uniques(list):
  12. return len(list) == len(set(list))
  13. def solve_task(lines):
  14. for line in lines:
  15. print(f"First task: {get_marker_index(line, 4)}")
  16. print(f"Second task: {get_marker_index(line, 14)}")
  17. def read_lines(filename):
  18. lines = []
  19. with open(filename) as infile:
  20. for raw_line in infile:
  21. line = raw_line.rstrip()
  22. lines.append(line)
  23. return lines
  24. def parse_arguments():
  25. parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
  26. parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
  27. args = parser.parse_args()
  28. return args
  29. def main():
  30. args = parse_arguments()
  31. lines = read_lines(args.filename)
  32. solve_task(lines)
  33. if __name__ == "__main__":
  34. main()