【发布时间】:2020-12-28 19:33:56
【问题描述】:
好吧,我已经为这个编码挑战工作了很长一段时间,我想现在是我正式举旗的时候了。救命!
我的任务是创建一个以罗马数字为参数并将其值作为十进制整数返回的函数。
到目前为止,我已经成功创建了一个将数字映射到其数值的哈希。我还创建了一个空数组roman_no 来传递键/值对。
我正在努力写表达式。以下是完整代码:
def solution(roman)
# take a value of a roman numeral
roman_numeral =
{
1000 => "M",
900 => "CM",
500 => "D",
400 => "CD",
100 => "C",
90 => "XC",
50 => "L",
40 => "XL",
10 => "X",
9 => "IX",
5 => "V",
4 => "IV",
1 => "I"
}
roman_no = Array.new
roman_numeral.each do | key, value |
while
"#{roman}" >= "#{key}"
+= roman_no
"#{roman}" -= "#{key}"
end
return roman_no
solution('XXI')
如何编写一个参数,从 roman_numeral 获取值并返回其数字计数器部分?
例如:
solution('XXI') # should return 21
【问题讨论】:
-
那么您的问题是什么?代码审查建议或您的代码无法运行?
-
我刚刚添加了问题。谢谢
-
您确定代码应该以这种方式转换吗(
solution('XXI') == 21?)您获得的半完成代码似乎正朝着另一个方向转换(@987654327 @)。此外,到目前为止,您提供的内容显然无效——它缺少end并包含神秘的空白行:+= roman_no。如果您正在从头开始寻找完整的解决方案,那么这很容易在谷歌上搜索;如果您正在寻找使 您的 解决方案正常工作的指针,那么我只想确保我们都在同一页面上了解您正在尝试做的事情 -
(而且您提供的代码真的是您编写的最新、最完整的版本吗?!)
标签: ruby string algorithm parsing