lc13 Roman to Integer

lc13 Roman to Integer

遇到那六种特殊情况分别-2,-20,-200,

按照罗马数字的规则,每种只可能出现一次。所以只需要考虑一次,用indexOf()即可判断是否出现这几种特殊情况

然后遍历s,按照每个字符的定义,加上value即可

 1 class Solution {
 2     public int romanToInt(String s) {
 3         int res = 0;
 4     
 5         if(s.indexOf("IV") != -1)
 6             res -= 2;
 7         if(s.indexOf("IX") != -1)
 8             res -= 2;
 9         if(s.indexOf("XL") != -1)
10             res -= 20;
11         if(s.indexOf("XC") != -1)
12             res -= 20;
13         if(s.indexOf("CD") != -1)
14             res -= 200;
15         if(s.indexOf("CM") != -1)
16             res -= 200;
17         
18         
19         for(char i : s.toCharArray()){
20             if(i == 'I')
21                 res += 1;
22             if(i == 'V')
23                 res += 5;
24             if(i == 'X')
25                 res += 10;
26             if(i == 'L')
27                 res += 50;
28             if(i == 'C')
29                 res += 100;
30             if(i == 'D')
31                 res += 500;
32             if(i == 'M')
33                 res += 1000;
34         }
35            
36         
37     
38         
39         return res;
40     }
41 }

 

posted @ 2019-06-03 12:39  南山南北秋悲  阅读(110)  评论(0编辑  收藏  举报