羅馬數字轉整數
class Solution {public int romanToInt(String s) {Map<Character,Integer> map = new HashMap<Character,Integer>(){{put('I',1);put('V',5);put('X',10);put('L',50);put('C',100);put('D',500);put('M',1000);}};int res = 0;for(int i = 0;i<s.length();i++){int val = map.get(s.charAt(i));if(i<s.length()-1&&val<map.get(s.charAt(i+1))){res -= val;}else{res += val;}}return res;}
}
問題的本質是,一般前一個數比后一個數大,當前一個數比后一個數小時,那么就減去它。
以后讀題也很重要,訓練自己對細節的把握,思考問題的本質。