题目

将罗马数字转换为整数。

 

解法

可以参考上一篇数字转换为罗马数字的规则。

 

代码

 1 class Solution {
 2 public:
 3     int sym2int(char sym)  //罗马数字字符与数字的对应关系
 4     {   
 5         switch(sym)
 6         {   
 7             case 'I' : return 1;
 8             case 'V' : return 5;
 9             case 'X' : return 10; 
10             case 'L' : return 50; 
11             case 'C' : return 100;
12             case 'D' : return 500;
13             case 'M' : return 1000;
14             default  : return 0;
15         }   
16     }
17     
18     int romanToInt(string s) {
19         int result = sym2int(s[0]);
20         for(int i = 1; i < s.size(); ++i)
21         {   
22             result += sym2int(s[i]);
23             if(sym2int(s[i]) > sym2int(s[i-1]))  //如果当前字符比上一字符对应的值要大,说明这是一个减的过程,由于上一字符之前计算过,所以减2倍
24                 result -= 2 * sym2int(s[i-1]);
25         }   
26         return result;
27     }
28 };

 

相关文章:

  • 2021-10-03
  • 2022-12-23
  • 2021-05-22
  • 2022-02-12
  • 2021-11-24
  • 2021-12-28
  • 2021-11-22
  • 2022-03-01
猜你喜欢
  • 2022-12-23
  • 2021-12-31
  • 2022-02-15
  • 2021-07-08
  • 2021-07-19
  • 2022-12-23
  • 2021-09-07
相关资源
相似解决方案