美文网首页
13.罗马数字转整数

13.罗马数字转整数

作者: 寂灭天骄小童鞋 | 来源:发表于2020-03-05 20:02 被阅读0次

https://leetcode-cn.com/problems/roman-to-integer/

func romanToInt(_ s: String) -> Int {
    if s.count <= 0 {return 0}
    var result = 0
    var pre = getNumValue(s[s.index(s.startIndex, offsetBy: 0)])
    for (index, char) in s.enumerated() {
        if index == 0 {continue}
        let charValue = getNumValue(char)
        if pre < charValue {
            result = result - pre
        } else {
            result = result + pre
        }
        pre = charValue
    }
    result = result + pre
    return result
}

func getNumValue(_ str: Character) -> Int {
    var result = 0
    switch str {
    case "I":
        result = 1
    case "V":
        result = 5
    case "X":
        result = 10
    case "L":
        result = 50
    case "C":
        result = 100
    case "D":
        result = 500
    case "M":
        result = 1000
    default:
        result = 0
    }
    return result
}

相关文章

网友评论

      本文标题:13.罗马数字转整数

      本文链接:https://www.haomeiwen.com/subject/tpfhrhtx.html