Skip to content

Instantly share code, notes, and snippets.

@truongnmt
Created February 13, 2020 15:36
Show Gist options
  • Save truongnmt/743c5a4860c37500a7baeeef620d5507 to your computer and use it in GitHub Desktop.
Save truongnmt/743c5a4860c37500a7baeeef620d5507 to your computer and use it in GitHub Desktop.
# @param {String} s
# @return {Integer}
def roman_to_int(s)
total = 0
roman_symbols = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
s.length.times do |i|
unless s[i+1]
total += roman_symbols[s[i].to_sym]
next
end
total += roman_symbols[s[i].to_sym] >= roman_symbols[s[i+1].to_sym] ? roman_symbols[s[i].to_sym] : roman_symbols[s[i].to_sym]*-1
end
total
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment