题目描述(简单难度)

    和上一道题相反,将罗马数字转换成阿拉伯数字。

    解法一

    先来一种不优雅的,也就是我开始的想法。就是遍历字符串,然后转换就可以,但同时得考虑 IV,IX 那些特殊情况。

    时间复杂度:O(n),n 是字符串的长度。

    空间复杂度:O(1)。

    下边分享一些优雅的。

    解法二

    把出现的特殊情况,提前减了就可以。

    时间复杂度:O(1)。

    空间复杂度:O(1)。

    解法三

    利用到罗马数字的规则,一般情况是表示数字大的字母在前,数字小的字母在后,如果不是这样,就说明出现了特殊情况,此时应该做减法。

    空间复杂度:O(1)。

    这道题也不难,自己一开始没有充分利用罗马数字的特点,而是用一些 if,switch 语句判断是否是特殊情况,看起来就很繁琐了。

    添加好友一起进步~

    如果觉得有帮助的话,可以点击 这里 给一个 star 哦 ^^