Advertisement
viligen

race_regex

Nov 18th, 2021
706
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.88 KB | None | 0 0
  1. import re
  2.  
  3. names = input().split(", ")
  4. results = {}
  5. pattern = r"([A-Z]*[a-z]*)?(\d)?"
  6.  
  7. while True:
  8.     data = input()
  9.     if data == "end of race":
  10.         break
  11.  
  12.     matches = re.finditer(pattern, data)
  13.     letters = ""
  14.     distance = 0
  15.     for each in matches:
  16.         if each.group(1):
  17.             letters += each.group(1)
  18.         if each.group(2):
  19.             distance += int(each.group(2))
  20.     if letters in names:
  21.         if letters not in results:
  22.             results[letters] = 0
  23.         results[letters] += distance
  24.  
  25. sorted_results = sorted(results.items(), key=lambda kvp: -kvp[1])
  26.  
  27. counter = 1
  28. ranking = ""
  29. while counter <= 3:
  30.     if counter == 1:
  31.         ranking = "1st"
  32.     elif counter == 2:
  33.         ranking = "2nd"
  34.     elif counter == 3:
  35.         ranking = "3rd"
  36.  
  37.     print(f"{ranking} place: {sorted_results[counter-1][0]}")
  38.     counter += 1
  39.  
  40.  
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement