网站首页 > 知识剖析 正文
题目介绍如下:
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
示例 1:
输入: s = "III"
输出: 3
示例 2:
输入: s = "IV"
输出: 4
示例 3:
输入: s = "IX"
输出: 9
示例 4:
输入: s = "LVIII"
输出: 58
解释: L = 50, V= 5, III = 3.
示例 5:
输入: s = "MCMXCIV"
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
我用golang实现的算法全部代码
package main
import (
"fmt"
"testing"
)
// 定义一个映射表来存储罗马字符和对应的整数值
var romanToIntMap = map[byte]int{
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000,
}
func romanToInt(s string) int {
total := 0
prevValue := 0
for i := len(s) - 1; i >= 0; i-- {
currentValue := romanToIntMap[s[i]]
if currentValue >= prevValue {
total += currentValue
} else {
total -= currentValue
}
prevValue = currentValue
}
return total
}
func TestLm2Int(t *testing.T) {
// 测试用例
romanNumerals := []string{"III", "IV", "IX", "LVIII", "MCMXCIV"}
for _, numeral := range romanNumerals {
fmt.Printf("罗马数字 %s 转换为整数是 %d\n", numeral, romanToInt(numeral))
}
}
- 上一篇: 字符串:用golang实现一个数字转罗马数字
- 下一篇: HTML中图像标签img
猜你喜欢
- 2025-01-06 表格技巧—如何从Excel的字符串里提取日期
- 2025-01-06 字符串:用golang实现一个数字转罗马数字
- 2025-01-06 不规则数字的提取(提取指定长度的数字)
- 2025-01-06 VBA提取字符串中的数字,这么做就是简单
- 2025-01-06 EXCEL数字在字符串中间怎么提取?
- 2025-01-06 ABB机器人RAPID字符串整体直接转数组
- 2025-01-06 Qt 从QString中提取出数字
- 2025-01-06 (每天一道C语言)||统计字符串中的数字字符并作为整数输出
- 2025-01-06 前端 JavaScript 字符串中提取数字
- 2025-01-06 Excel教程:函数公式提取字符串中的数字和字母
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)