代码拉取完成,页面将自动刷新
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。