Menu
CoddyTech

Roman to Integer

בספרות רומיות משתמשים בשבעה סמלים: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500 ו־M = 1000. הסמלים נכתבים מהגדול לקטן ומחברים אותם, למעט בשישה צמדים חיסוריים שבהם סמל קטן מופיע קודם ומחסרים אותו מהסמל הגדול יותר: IV = 4, IX = 9, XL = 40, XC = 90, CD = 400 ו־CM = 900.

נתונה לך ספרה רומית תקינה s. החזר את המספר השלם שהיא מייצגת.

פונקציה

romanToInt(s: string) → integer
sstring
ספרה רומית תקינה באותיות גדולות
מחזירהinteger
הערך של הספרה, מ־1 עד 3999

אילוצים

  • 1 ≤ s.length ≤ 15
  • s מכילה רק את התווים I, V, X, L, C, D ו־M.
  • s הוא ספרה רומית תקינה עבור ערך שבין 1 ל־3999.

דוגמאות

קלט
s = "XXVII"
פלט
27
הסבר
XX הוא 10 + 10, V הוא 5 ו-II הוא 1 + 1, כך שהסכום הוא 27. אחרי אף סמל לא מופיע סמל גדול יותר, ולכן מחברים את הערך של כל סמל.
challenge icon

שאלת המשך

האם תוכל לכתוב את ההיפוך, ולהמיר מספר שלם מ־1 עד 3999 לספרה רומית?

איפוס הקוד
def romanToInt(s):
    # כתבו את הקוד כאן

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

s = "XXVII"

הפלט הצפוי

27