天天看點

羅馬數字轉整數『java實作』

題目:

羅馬數字轉整數『java實作』

解法一思路:

  • 先把羅馬數字轉化為整數
  • 判斷條件:
  • 正常:羅馬數字中小的數字在右邊,則直接做加法運算。
  • 特例:羅馬數字中大的數字若在右邊的話,則需做減法運算。
  • 是以,通過周遊往後看一位,判斷是做加法運算還是減法運算。
class Solution {
    public int romanToInt(String s) {
        int sum = 0;
        int pre = getValue(s.charAt(0));
        for(int i=1; i<s.length();i++){
            int num = getValue(s.charAt(i));
            if(pre<num){
                sum -= pre;
            }else{
                sum += pre;
            }
             pre = num;   
        }
        sum += pre;     //與最後一位做加法運算
        return sum;
    }
    public int getValue(char c){
        switch(c){
            case 'I':return 1;
            case 'V':return 5;
            case 'X':return 10;
            case 'L':return 50;
            case 'C':return 100;
            case 'D':return 500;
            case 'M':return 1000;
            default:return 0;
        }

    }
}
           
參考作者:donespeak 來源:力扣(LeetCode)

注意:

測試時,在輸入需要轉化為數字的羅馬數字時,應當要考慮題目給出的特殊規則。

在解題的道路不斷掙紮…