Форум сайта python.su
Пытаюсь на 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)
Офлайн
Ты укоротил список внутри цикла, а цикл продолжает перебирать все индексы.
Офлайн
Спасибо! Заработала функция, фух.
Офлайн