Leetcode 12. Integer to Roman

Rim sonlari 7 xil belgilar bilan yasalari. Ular IVXLCD va M bo’lib, rim raqamlari deyiladi.

Belgi       Qiymati
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

Masalan, 2 rim raqamlarida – II12 – XII (X + II). 27 – XXVII (XX + V + II).

Rim raqamlari odatda chapdan o’ngga kattasidan boshlab yoziladi, lekin IIII soni IV ya’ni 5-1=4 ko’rinshida beriladi (VI). Huddi shu qoida 9 uchun ham amal qiladi – IX. Jami 6 xil holatda ayirish bilan son hosil qilinadi:

  • I belgisi V (5) va X (10) dan oldin qo’yilib 4 va 9 hosil qilinadi. 
  • X belgisi L (50) va C (100) oldiga qo’yilsa, 40 va 90. 
  • C belgisi D (500) va M (1000) oldiga qo’yilsa, 400 va 900 hosil bo’ladi.

Massalaning sharti – oddiy sonni rim raqamlariga o’tkazish. bunda son 1 <= n <= 3999 oralig’ida beriladi deb olinadi.

Misol 1:

Input: num = 58
Output: "LVIII"
Tushuntirish: L = 50, V = 5, III = 3.

Misol 2:

Input: num = 1994
Output: "MCMXCIV"
Tushuntirish: M = 1000, CM = 900, XC = 90 and IV = 4.

Ishlash tartibi

Bu yerda hech qanday murakkablik yo’q:

  • Sondan minglik, yuzlik, o’nlik, va birlik raqamlari ajratib olinadi.
  • Minglik soni miqdoricha M yoziladi (maksimum son 3999 bo’lgani uchun, M miqdori 3tagacha bo’lishi mumkin).
  • Yuzlik soni rim raqamlariga o’tkaziladi. Agar son 1 <= n <= 3 bo’lsa, son miqdoricha C; agar son n = 4 bo’lsa, CD; agar son n <= 5 <= 8 bo’lsa, D va son n - 5 miqdoricha C; son n = 9 bo’lsa, CM yoziladi.
  • O’nlik soni rim raqamlariga o’tkaziladi. Agar son 1 <= n <= 3 bo’lsa, son miqdoricha X; agar son n = 4 bo’lsa, XL; agar son n <= 5 <= 8 bo’lsa, L va son n - 5 miqdoricha X; son n = 9 bo’lsa, XC yoziladi.
  • Va nihoyat birlik soni rim raqamlariga o’tkaziladi. Agar son 1 <= n <= 3 bo’lsa, son miqdoricha I; agar son n = 4 bo’lsa, IV; agar son n <= 5 <= 8 bo’lsa, V va son n - 5 miqdoricha I; son n = 9 bo’lsa, IX yoziladi.

Yuqoridagi tartibni kodga ko’chiramiz. Ishlash tartibiga ko’ra, yuzlik, o’nlik va birlik sonlarining rim raqamlariga o’tkazish ko’rinishi bir xil. Demak ularni qo’shimcha funksiya yordamida yasab olamiz.