leetcode刷题笔记(四)
[13. 罗马数字转整数](https://leetcode-cn.com/problems/reverse-integer/)
解法一:
首先将罗马数字列表做一个map放进去,以便于后面比对罗马字符进行取值。
对字符串进行遍历,正常情况就累加。
如果遇到满足类似IV这类特殊情况就是,只要每一个新值比前者大,我们就将减去两个前者,等同于将前者的加运算变为减。
func romanToInt(s string) int {
var sum int
m := make(map[byte]int)
m['I'] = 1
m['V'] = 5
m['X'] = 10
m['L'] = 50
m['C'] = 100
m['D'] = 500
m['M'] = 1000
tmp := 1000
for i := 0; i < len(s); i++ {
now := m[s[i]]
if tmp < now{
sum -= 2 * tmp
}
sum += now
tmp = now
}
return sum
}