133. 罗马数字转换为整数

JavaScript Meta

容易  -通过 / -执行

罗马数字(Roman numerals) 由如下7种记号排列而成。

Symbol I V X L C D M
Value 1 5 10 50 100 500 1000

Standard form表示中,subtractive notation 将发生作用,意味着4 是IV 而不是IIII,9 是IX而不是VIIII,该规则适用于40(XL)和 900(CM)等等。

简单来说,罗马数字遵从如下规则。

  1. 记号从左往右,值从大到小进行排列。
  2. 从左往右,如果下一个记号的值更大,则代表减法,否则是加法。

请实现romanToInteger(),传入的罗马数字字符串均为有效。

romanToInteger('CXXIII')// 123romanToInteger('MCMXCIX')// 1999romanToInteger('MMMCDXX')// 3420

始终思考更好的解决办法