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 { |
評論
歡迎來到 GitHub 留言區
歡迎分享想法、問題或勘誤。登入 GitHub 後即可留言;支援 Markdown、Emoji 與外部圖片連結。
GitHub 登入MarkdownEmoji
使用 Disqus 參與討論
Disqus 是第三方服務,載入後可能使用 Cookie。可依 Disqus 設定使用 Facebook 等多元登入方式,也能加入圖片與 GIF;媒體功能需在 Disqus 後台開啟。
多元登入圖片 / GIF文章反應





