-2
class Solution:
    def romanToInt(self, s: str) -> int:
       dict = {
        'I' : 1,
        'V' : 5,
        'X' : 10,
        'L' : 50,
        'C' : 100,
        'D' : 500,
        'M' : 1000
        } 
       result  = 0
       tmp = 0;
       i = 0

       while i < len(s):
           tmp = dict[s[i]];
           if (i +1) < len(s) and dict[s[i]] < dict[s[i + 1]]:
               tmp = dict[s[i + 1]] - dict[s[i]]
               i += 1
           i += 1
           result += tmp;

       print (result)

Daniel Hao
  • 4,922
  • 3
  • 10
  • 23
  • 1
    Do the answers to this [question](https://stackoverflow.com/questions/32557920/what-are-type-hints-in-python-3-5) help at all? – quamrana Jun 09 '22 at 11:21
  • `Solution().romanToInt("V")`; `romanToInt(self, s: str) -> int:` - `:str` and `-> int` are **type hints** - they do not have an effect on the behaviour of the function, but can be used by IDE to suggest how the method is supposed to be used. – matszwecja Jun 09 '22 at 11:24

1 Answers1

0

I edited your code a little bit because you shouldn't use type keywords as variable names and to make it more readable

class Solution:

    def romanToInt(self, text: str) -> int:
       pairs = {
        'I' : 1, 'V' : 5, 'X' : 10, 'L' : 50,
        'C' : 100, 'D' : 500, 'M' : 1000 
       } 
       result = tmp = i = 0
       while i < len(text):
           tmp = pairs[text[i]];
           if i + 1 < len(text) and pairs[text[i]] < pairs[text[i + 1]]:
               tmp = pairs[text[i + 1]] - pairs[text[i]]
               i += 1
           i += 1
           result += tmp
       print(result)


solution = Solution()          # initialize instance of Solution class
solution.romanToInt("XXVIII")  # run the romanToInt method 

ouput = 28

Alexander
  • 16,091
  • 5
  • 13
  • 29