Advertisement
Guest User

sortMonarchs.py

a guest
Jun 16th, 2025
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.05 KB | None | 0 0
  1. def romano_para_inteiro(s):
  2.     valores = {
  3.         'I': 1, 'V': 5, 'X': 10,
  4.         'L': 50, 'C': 100,
  5.         'D': 500, 'M': 1000
  6.     }
  7.     total = 0
  8.     anterior = 0
  9.     for c in reversed(s.upper()):
  10.         atual = valores.get(c, 0)
  11.         if atual < anterior:
  12.             total -= atual
  13.         else:
  14.             total += atual
  15.             anterior = atual
  16.     return total
  17.  
  18. class Monarch:
  19.     def __init__(self,s):
  20.         self.original=s
  21.         l=s.split(" ")
  22.         self.name=l[0]
  23.         self.number=romano_para_inteiro(l[1])
  24.     def __gt__(self,other):
  25.         if self.name>other.name:
  26.             return True
  27.         if self.name<other.name:
  28.             return False
  29.         return self.number>other.number
  30.  
  31. def getOriginal(m):
  32.     return m.original
  33.  
  34. def sortMonarchs(l):
  35.     ret=list(map(Monarch,l))
  36.     ret=sorted(ret)
  37.     return list(map(getOriginal,ret))
  38.  
  39. def main():
  40.     l=[]
  41.     while True:
  42.         s=input("Enter a monarch: ")
  43.         if not s:
  44.             break
  45.         l.append(s)
  46.     res=sortMonarchs(l)
  47.     print(res)
  48.  
  49. if __name__=="__main__":
  50.     main()
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement