# 第十一周ARTS总结
# Algorithm
11ms | 7.52% Run time
37.4MB | 54.52% Memory
public int romanToInt(String s) {
Map<String, Integer> map = new HashMap<>();
map.put("I", 1);
map.put("V", 5);
map.put("X", 10);
map.put("L", 50);
map.put("C", 100);
map.put("D", 500);
map.put("M", 1000);
map.put("IV", 4);
map.put("IX", 9);
map.put("XL", 40);
map.put("XC", 90);
map.put("CD", 400);
map.put("CM", 900);
int sum = 0;
char[] chars = s.toCharArray();
// 单个字符遍历求和
for (int i = 0; i < chars.length; ) {
String chs;
if (i + 1 < chars.length) {
chs = chars[i] + "" + chars[i + 1];
} else {
chs = chars[i] + "";
}
if (map.get(chs) == null) {
chs = chs.substring(0, 1);
}
sum = sum + map.get(chs);
i = i + chs.length();
}
return sum;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Review
# Tip
Base64
编码过程:将字符转成二进制,并每6位重新进行编码,不足补=
Base64
解码过程:将字符去掉=
,然后转成二进制,并每8位重新编码
# Share
暂无内容
← 第十周ARTS总结 第十二周ARTS总结 →