Можно ли исправить рекурсивную функцию Python на расстоянии редактирования в 12 символов?Python

Программы на Python
Ответить
Anonymous
 Можно ли исправить рекурсивную функцию Python на расстоянии редактирования в 12 символов?

Сообщение Anonymous »

У меня есть следующая рекурсивная функция Python. Цель состоит в том, чтобы вернуть индекс первого вхождения его в список. Можно ли исправить этот код максимум за 12 правок?

Код: Выделить всё

def index_of(it, l):
if it not in l:
return -1
return (l[0] if l[0] == it else index_of(l[:1],it))

print( index_of("Wali", ["Bobo", "Ali", "Wali", "Frank", "Wali"]) )
Я пытался изменить оператор return на следующий, но, по мнению валидатора, это приводит к удалению редактирования 13:

Код: Выделить всё

return (0 if l[0] == it else 1+index_of(it,l[1:]))
Моя самая большая проблема заключается в том, что я не могу изменить сигнатуру функции, а большая часть расстояния редактирования возникает из-за исправления неправильного порядка аргументов в рекурсивном вызове.
Я пробовал несколько подходов, и хотя несколько человек предположили, что это невозможно при данных ограничениях, меня интересовали бы конкретные попытки исправить код в пределах ограничения расстояния редактирования или четкое объяснение того, почему это невозможно сделать.
Исправление — это любое изменение, которое сохраняет нормализованное, основанное на символах расстояние редактирования Левенштейна ≤ 12 (импорт удален, повторяющиеся символы свернуты, конечные символы новой строки игнорируются).

Подробнее здесь: https://stackoverflow.com/questions/798 ... r-edit-dis
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»