Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2023 13:14:35

Japhes
Зарегистрирован: 2023-01-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с функцией

Пытаюсь на LeetCode решить задание - написать функцию, которая переводит римские числа в арабские. Через пайчарм код, вроде, работает. Но на самом сайте выдаёт ошибку:

IndexError: list index out of range
for i in range(len(num_line) - 1):
if num_line < num_line:

В чём проблема? Так нельзя прописывать циклы?

 def romanToInt(self, s):
        rom_dict = {
            "I":1,
            "V":5,
            "X":10,
            "L":50,
            "C":100,
            "D":500,
            "M":1000
            }   
        rom_line = [letter for letter in s]
        num_line = [rom_dict[num] for num in rom_line]
    
        for i in range(len(num_line) - 1):
            if num_line[i] < num_line[i+1]:
                x = num_line[i+1] - num_line[i]
                num_line.pop(i)
                num_line.pop(i)
                num_line.insert(i, x)
        return sum(num_line)

Офлайн

#2 Янв. 23, 2023 13:26:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Помогите с функцией

Ты укоротил список внутри цикла, а цикл продолжает перебирать все индексы.



Офлайн

#3 Янв. 23, 2023 13:57:31

Japhes
Зарегистрирован: 2023-01-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с функцией

Спасибо! Заработала функция, фух.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version