您的位置:首页 > 编程语言 > Go语言

leetcode刷题笔记(四)[Go语言实现]

2021-08-18 15:19 1161 查看

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: