1 Star 0 Fork 1

dllearn/geektime-algorithm-learn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
f.go 877 Bytes
一键复制 编辑 原始数据 按行查看 历史
dryyun 提交于 2022-04-20 11:58 +08:00 . 0013
package romantointeger
// 13. 罗马数字转整数
// https://leetcode-cn.com/problems/roman-to-integer/
// IV = 4 IX = 9 XL = 40 XC = 90 CD = 400 CM = 900
// 字符 数值
// I 1
// V 5
// X 10
// L 50
// C 100
// D 500
// M 1000
func romanToInt(s string) int {
mm := map[string]int{
"IV": 4,
"IX": 9,
"XL": 40,
"XC": 90,
"CD": 400,
"CM": 900,
}
m := map[string]int{
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000,
}
bs := []byte(s)
var sum int
l := len(bs)
for i := 0; i < len(bs); i++ {
b := string(bs[i])
if (b == "I" || b == "X" || b == "C") && i+1 != l {
bn := string(bs[i+1])
if v, ok := mm[b+bn]; ok {
sum += v
i++
} else {
sum += m[b]
}
} else {
sum += m[b]
}
}
return sum
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dllearn/geektime-algorithm-learn.git
git@gitee.com:dllearn/geektime-algorithm-learn.git
dllearn
geektime-algorithm-learn
geektime-algorithm-learn
55fa3f222b36

搜索帮助