算法之路(4)--羅馬數字轉爲整數 [leetcode]

只要明白了羅馬數字的基本道理,把羅馬數字轉爲整數其實很簡單,
羅馬數字有I V X L C D M 組成,分別表明1,5, 10, 50,100,500,1000
而後這幾個字母在一塊組成一個數.字母組合的規則有兩個:javascript

  • 1.假如左邊的字母表明的數比右邊的字母表明的數小,那麼這個字母表明的數爲原本的相反數.
    如IV爲-1 + 5 = 4
  • 2.其餘狀況都爲原本的數
    如VI爲5 + 1 = 6
  • 3.最後一位爲正的.

其實還有挺多細節的,可是這個題目須要的只有這些,瞭解這些就足夠了.
而後按照上面的兩條邏輯,就可寫出下面的代碼.
除了這個題目的解法以外,還有要注意寫法,若是變量爲不變的,那就定義爲const,假如只在此做用域起做用,就定義爲let,通過我本身的實踐,用這兩種代替var,能夠提升程序的運行速度,因此,咱們從開始就要養成良好的編程習慣.java

Solution(javascript):

這種解法不是最優的,但應該是比較簡單直觀.因此今天發這種解法.後面可能更新別的解法編程

var romanToInt = function(s) {
    const arr = s.split('');
    const map = {
        I: 1, 
        V: 5, 
        X: 10,
        L: 50,
        C: 100,
        D: 500,
        M: 1000,
    }
    
    let len = arr.length;
    let num = map[arr[len-1]];
    
    for(let i = len-2; i >=0; i--) {
        let addNum = map[arr[i]];
        if (addNum >= map[arr[i+1]])
            num += addNum;
        else
            num -= addNum;
    }
    
    return num;
};
相關文章
相關標籤/搜索