a.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import os, argparse
  2. def solve_task(lines):
  3. duplicate_objects = []
  4. priority_sum = 0
  5. for line in lines:
  6. half_index = len(line)//2
  7. dupes_in_this_pack = {}
  8. for i in line[:half_index]:
  9. if i in line[half_index:] and i not in dupes_in_this_pack:
  10. print(f"{i} is in {line[half_index:]}, first half {line[:half_index]}")
  11. priority_sum += get_priority(i)
  12. dupes_in_this_pack[i] = True
  13. print(duplicate_objects)
  14. print(priority_sum)
  15. def get_priority(item):
  16. item_code = ord(item)
  17. if item >= 'a' and item <= 'z':
  18. return item_code - ord('a') + 1
  19. else:
  20. return item_code - ord('A') + 27
  21. def read_lines(filename):
  22. lines = []
  23. with open(filename) as infile:
  24. for raw_line in infile:
  25. line = raw_line.rstrip()
  26. lines.append(line)
  27. return lines
  28. def parse_arguments():
  29. parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
  30. parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
  31. args = parser.parse_args()
  32. return args
  33. def main():
  34. args = parse_arguments()
  35. lines = read_lines(args.filename)
  36. solve_task(lines)
  37. if __name__ == "__main__":
  38. main()