Leetcode 13. Roman to Integer

Rim raqamlaridan tuzilgan son berilgan. Uni arab raqamlaridagi integer songa aylantiring. Rim raqamlari haqida bu yerda tanishib chiqishingiz mumkin.

Misol 1:

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

Misol 2:

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

Ishlash tartibi

Eng oson yo’li – rim raqamlarini sonlarga aylantirib chiqish va ularni bir-biriga qo’shib yakuniy qiymatini qaytarish. Masalan, M harfini 1000 ga aylantiriladi (replace), D ni 500 ga va hokazo. Bu yerda e’tibor qilish kerak bo’ladigan jihati – 4, 9, 40, 90, 400, 900 sonlari ikki rim raqamining ayirmasi sifatida hosil bo’lgani uchun, ularni avval sonlarga o’tkazib olinadi.

Yuqoridagi kod biroz «verbose», ammo o’z ishini bajaradi. Kichik optimizatsiya sifatida, rim raqamlari va ularning arab raqamlari analogini dictionary‘da saqlashimiz ham mumkin.