ずっと5月

3日坊主してます

ローマ数字からアラビア数字に変換する

LeetCodeの Roman to Integerっていう問題を解いた
今回はローマ数字からアラビア数字だったけど逆の問題もあるのでそのうち解きたい

class Solution {
    func romanToInt(_ s: String) -> Int {
        var sum:Int = 0
        var lastVal = 0
        
        let valueMap: [Character: Int] = ["I": 1,
                                       "V": 5,
                                       "X": 10,
                                       "L": 50,
                                       "C": 100,
                                       "D": 500,
                                       "M": 1000]
        
        for char in s.reversed(){
            if let val = valueMap[char] {
                if val >= lastVal {
                    sum += val
                } else {
                    sum -= val
                }
                lastVal = val
            }
        }
        return sum
    }
}