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 };
原文地址:https://www.cnblogs.com/Stomach-ache/p/3768046.html