您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法
罗马数字转整数(图文)
第十三双眼睛2023-11-21【数据结构与算法】人已围观
简介罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即
其实本题很简单,就是依次遍历,遍历的时候,看看它的下一位是比本位大还是小,如果是大,则表示本位要减去,否则就是加上。因此代码如下:
public int method1(String s) { Map<Character, 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); int sum = 0; char[] chars = s.toCharArray(); for (int i = 0; i<chars.length - 1; i++) { Integer current = map.get(chars[i]); Integer next = map.get(chars[i + 1]); if (current >= next) { sum = sum + current; } else { sum = sum - current; } } sum = sum + map.get(chars[chars.length - 1]); return sum; } |
Tags:
很赞哦! ()