Convert Roman numerals to integer numbers (C++) int RomanToInteger(std::string roman) { std::map <char, int> romanChars; romanChars['I'] = 1; romanChars['V'] = 5; romanChars['X'] = 10; romanChars['L'] = 50; romanChars['C'] = 100; romanChars['D'] = 500; romanChars['M'] = 1000;
int l = roman.length();
int prevValue = 1; int number = 0; for(int i = 0; i < roman.length(); i++) { int val = romanChars[roman[l - i - 1]]; if (val >= prevValue) { number += val; } else { number -= val; } prevValue = val; } return number; } |
Algorithms >