Задача на 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
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Content hugging и compression resistance
Следующий вопрос
setNeedsLayout и layoutIfNeeded
Ещё по теме «UIKit»
- Неверная картинка в переиспользуемой ячейке
- Diffable data source и повторяющиеся идентификаторы
- Что делать в prepareForReuse
- reconfigureItems и reloadItems
- Ячейки с автоматической высотой
- Разница между frame и bounds
- Где брать финальный размер view
- Почему кнопка не получает нажатия