iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
自我挑戰組

leetcode系列 第 12

leetcode 12. Integer to Roman

  • 分享至 

  • xImage
  •  

題目:
https://ithelp.ithome.com.tw/upload/images/20250926/20169340G4zSTsxO5Q.png
七種不同的符號代表具有以下數值的羅馬數字:
羅馬數字由小數位數值的轉換結果由高到低依序相加而成。將小數位數值轉換為羅馬數字有以下規則:

如果值不是以 4 或 9 開頭,則選擇可以從輸入中減去的最大值的符號,將該符號附加到結果,減去其值,然後將餘數轉換為羅馬數字。
如果數值以 4 或 9 開頭,則使用 減法形式 ,表示從後面的符號中減去一個符號,例如,4 比I5()小1( V):,IV 9I比 10()小 1(X):。IX僅使用以下減法形式:4(IV)、9(IX)、40(XL)、90(XC)、400(CD)和 900(CM)。
只有 10 的冪次方(I、X、C、M)可以連續添加最多 3 次,以表示 10 的倍數。您不能多次新增 5 ( V)、50 ( L) 或 500 ( )。如果需要增加 4 次符號,請使用減法形式。D
給定一個整數,將其轉換為羅馬數字。
https://ithelp.ithome.com.tw/upload/images/20250926/20169340L3W8Xmfjv0.png

解題思路:

定義羅馬數字和對應的數值:
我們可以創建兩個數組,一個用來存儲羅馬數字符號(從大到小),另一個用來存儲對應的數值。

從大到小處理:
由於羅馬數字的組成是從大到小排列的,我們應該從最大的數值開始檢查。如果當前數字大於或等於該數值,就將對應的羅馬符號加入結果,並將數字減去對應的數值。

不斷減少數字:
每次減去符號所代表的數字,直到剩下的數字為 0。


上一篇
leetcode 11. Container With Most Water
系列文
leetcode12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言