罗马数字转整数
题目:
罗马数字转整数
解析:
数字应该是从大到下排,如果遇见了从小到大排的就是4、40、400。从后遍历比较方便
代码:
class Solution {public int romanToInt(String s) {//注意到一般是从大往小排,除非是4、40、400的清空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 ans = 0;char[] ch = s.toCharArray();int n = ch.length;for(int i = n - 1; i >= 0; i--){if(i >= 1){int b = map.get(ch[i]);int a = map.get(ch[i - 1]);if(b > a){ans = ans + b - a;i--;}else ans = ans + b;}else ans = ans + map.get(ch[i]);}return ans;}
}