LeetCode 13 - Roman to Integer
題目概要
羅馬數字由7個不同的符號組成(如下表所示),題目會給定一串羅馬符號,要求算出該數串的數值。
Symbol | Value | Symbol | Value |
---|---|---|---|
I |
1 | V |
5 |
X |
10 | L |
50 |
C |
100 | D |
500 |
M |
1000 |
解題思路
- 先建一個map容器,記錄下每個羅馬數字對應的數值大小
- 羅馬數字組成有個特別的規則是:如果左邊的值比右邊的小,那麼就要用大減小的方式算出那兩個串數的值;除此之外都是直接相加。
- 因此利用這個規則可以推導出如果
左數大於等於右數那麼就把sum加上左數
,如果左數小於右數那麼就把sum減掉左數
參考程式碼
1 | class Solution { |
評論