Контест Middle UIKit обновлено

Задача на Swift: разница снимков для diffable data source

Условие

Для обновления таблицы посчитайте, какие строки удалить из старого списка и какие вставить в новый, по уникальным идентификаторам (перемещения не учитываются).

Ввод: n, строка из n id старого списка (уникальны), m, строка из m id нового списка (пустой список задаётся пустой строкой). 0 ≤ n, m ≤ 10⁴.

Если в новом списке есть повторяющийся id, diffable data source упадёт: выведите DUPLICATE <id> для первого повтора при чтении слева направо. Иначе выведите две строки: delete: и индексы удаляемых строк старого списка по возрастанию, insert: и индексы вставляемых строк нового списка по возрастанию. Вместо пустого списка индексов пишите -.

Пример

4
a b c d
4
b x d y
delete: 0 2
insert: 1 3

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.