Найти - Пользователи
Полная версия: Помогите с функцией
Начало » Центр помощи » Помогите с функцией
1
Japhes
Пытаюсь на 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)
py.user.next
Ты укоротил список внутри цикла, а цикл продолжает перебирать все индексы.
Japhes
Спасибо! Заработала функция, фух.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB