b.py 1.3 KB

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