LeetCode13 - Roman to Integer(Ru

2017-03-03  本文已影响0人  MrFatt

题目链接:Roman to Integer

题目

Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.

实现罗马数字到整数的转换,大家都懂的。。。

求解思路

罗马数字的基本规则如下(不全,但AC用到的就这些):

AC代码

# @param {String} s
# @return {Integer}
def roman_to_int(s)
    ret=0
    ref ={"I"=>1,"V"=>5,"X"=>10,"L"=>50,"C"=>100,"D"=>500,"M"=>1000}
    len = s.length
    (0..len-1).each do |i|
        if i == len-1 || ref[s[i+1]] <= ref[s[i]]
            ret += ref[s[i]]
        else
            ret -= ref[s[i]]
        end
    end
    return ret
end
上一篇下一篇

猜你喜欢

热点阅读