LeetCode 13. 罗马数字转整数Golang版
1. 问题描述
2. 思路
- 从倒数第二个遍历,如果
s[i]
<s[i+1]
的小,result = result - s[i]
- 如果
s[i]
>s[i+1]
的大或相等,result = result +s[i]
3. 代码
func romanToInt(s string) int {
// n := len(s)
dic := map[byte] int {
'I' : 1,
'V' : 5,
'X' : 10,
'L' : 50,
'C' : 100,
'D' : 500,
'M' : 1000,
}
result := dic[s[len(s)-1]]
for i := len(s)-2; i >= 0; i-- {
if dic[s[i]] < dic[s[i+1]] {
result -= dic[s[i]]
} else {
result += dic[s[i]]
}
}
return result
}