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 { |
評論
歡迎來到 Twikoo 留言區
歡迎分享您的想法、問題或勘誤。支援 Markdown、程式碼區塊與表情貼圖。留言皆存放於自架的 Twikoo 服務,Email 不會公開顯示,僅用於博主回覆通知使用。
AnonymousMarkdownEmoji貼圖
歡迎來到 GitHub 留言區
歡迎分享您的想法、問題或勘誤。登入 GitHub 留言不僅能亮出您的專屬頭像,還能直接造訪您的帳號;支援 Markdown、Emoji 與外部圖片連結。
GitHub 登入MarkdownEmoji






