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
}
网友评论