LeetCode题解 13.罗马数字转整数
13.罗马数字转整数
解题思路:
1.首先 既然是罗马转阿拉伯数字 那就是接受参数无外乎是字符串的 ‘I’,’V’,’X’,’L’,’C’,’D’,’M’
2.然后将接受的字符串 转换成 字符数组
3.接下来很自然的用到 switch() ,将罗马数字按照依次判断,然后将对应的阿拉伯数组 放在对应整形数组中
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。
4.IV是表示4 , 相当于 V 减去 前面的 I,这样就可以转换阿拉伯数字后,按照这样运算就能求出正确结果,只需要判断 if(num[n] < num[n+1]) 如果成立,则需要减去 num[n] 的数,如果不成立则需要把 num[n] 加进sum
5.最后再累加整形数组中的最后一位元素,返回sum
1 | class Solution { |
时间复杂度 | 空间复杂度 |
---|---|
$O(n)$ | $O(n)$ |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.