Roman to Integer. Как перевести римские цифры в арабские на языке Python?

Поделиться
HTML-код
  • Опубликовано: 31 окт 2024

Комментарии • 4

  • @lesson-web
    @lesson-web 5 месяцев назад

    Клёвый туториал

  • @olegbalandin6856
    @olegbalandin6856 3 месяца назад

    class Solution:
    def intToRoman(self, num: int) -> str:

    rom = "IVXLCDM"
    lnum = str(num)

    l = len( lnum )

    result = ""

    j = 0
    m = 0
    for i in range(1 , l + 1):
    c = lnum[ l - i ]
    x = int( c )
    if i 5:
    y = x - 5
    for z in range(0 , y):
    result = rom[j] + result
    result = rom[j+1] + result
    elif x > 0:
    for z in range(0 , x):
    result = rom[j] + result
    j = j + 2
    else:
    m = x * 10 ** (i-4)
    for z in range(0 , m):
    result = rom[j] + result
    return result

    • @olegbalandin6856
      @olegbalandin6856 3 месяца назад

      Питон выучил по ходу, поэтому возможно использовал не самые быстрые оптимальные операторы доступа по индексу, преобразования и т.д. Но сложность алгоритма явно меньше... потому, что один цикл вложенные циклы только для выведения в итог N количество символов одинаковых, возможно есть проще оператор

    • @olegbalandin6856
      @olegbalandin6856 3 месяца назад

      как варик рекурсию добавить, чтобы погружаться до последнего символа и на возврате собирать строку, если в питоне result += rom[j] значительно быстрее result = rom[j] + result... просто не знаю как конкатенация реализована....