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. אחרי אף סמל לא מופיע סמל גדול יותר, ולכן מחברים את הערך של כל סמל.

lock icon+22 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

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

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

מקרה 1

מקרה 2

מקרה 3

קלט

s = "XXVII"

צפוי

27