LeetCode --- Roman to Integer

题目链接

将罗马数字转换为十进制整数。数据范围为:1~3999

罗马数字由7种字母组成,按照特定规则可以组成任意正整数, 需要注意的是罗马数字中没有”0“.

关于罗马数字具体可以看:这里

附上代码:

 1 class Solution {  2 public:  3     int romanToInt(string s) {  4         map<char, int> a;  5         a['I'] = 1;  6         a['V'] = 5;  7         a['X'] = 10;  8         a['L'] = 50;  9         a['C'] = 100; 10         a['D'] = 500; 11         a['M'] = 1000; 12         int n = (int)s.length(), ans = 0; 13         for (int i = 0; i < n; i++) { 14             if (i < n-1 && a[s[i]] < a[s[i+1]]) { 15                 ans += a[s[i+1]] - a[s[i]]; 16                 i++; 17             } else { 18                 ans += a[s[i]]; 19  } 20  } 21         return ans; 22  } 23 };

 

你可能感兴趣的:(LeetCode)