这题转成字符数组后遍历就是了
-----------------------------------------------------------------------------------------------
罗马数字包含以下七种字符:I
V
X
L
,C
,D
M
。
字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000
II
XII
X
II
XXVII
XX
V
II
IIII
IV
IX
。这个特殊的规则只适用于以下六种情况:
I
V
X
X
L
C
C
D
M
输入:输出: 3
输入:输出: 4
输入:输出: 9
输入:输出: 58 解释: C = 100, L = 50, XXX = 30, III = 3.
输入:输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4.
class Solution { public int romanToInt(String s) { char[] ch = s.toCharArray(); int sum = 0; for (int i = 0; i < ch.length; i++) { switch (ch[i]) { case 'I': sum += 1; break; case 'V': sum += 5; if(i-1>=0&&ch[i-1]=='I') { sum=sum-2; } break; case 'X': sum += 10; if(i-1>=0&&ch[i-1]=='I') { sum=sum-2; } break; case 'L': sum += 50; if(i-1>=0&&ch[i-1]=='X') { sum=sum-20; } break; case 'C': sum += 100; if(i-1>=0&&ch[i-1]=='X') { sum=sum-20; } break; case 'D': sum += 500; if(i-1>=0&&ch[i-1]=='C') { sum=sum-200; } break; case 'M': sum += 1000; if(i-1>=0&&ch[i-1]=='C') { sum=sum-200; } break; default: break; } } return sum; } }
文章来源: 十三_罗马数字转整数