Задача по сортировке списков на питоне
Нужен код который сортирует списки так, чтобы на определённой позиции в каждом списке стояло число, отличное от чисел на той же позиции в других списках
например, даны списки:
a1 = [1, 2, 4]
a2 = [1, 3, 4, 5, 2]
a3 = [1, 3, 5]
На выходе получаем:
a1 = [1, 4, 2]
a2 = [3, 5, 1, 2, 4]
a3 = [5, 1, 3]
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Судя по приведённому примеру, списки нужно не перемешивать, а сдвигать - порядок элементов в них остаётся тот же, но с учётом циклической ротации.
Алгоритм может быть такой.
- Фиксируете положение первого списка
- Сдвигаете второй список по кругу, пока парные элементы двух списков не станут различными, либо не будет пройден полный круг
- Сдвигаете третий список по кругу, пока парные элементы трёх списков не станут различными, либо не будет пройден полный круг
- Если был пройден полный круг по третьему списку, то делается следующая попытка сдвинуть второй список
Для полноты алгоритма можно добавить сверху ещё цикл для сдвига первого списка. Там проверок на несовпадение не будет, просто сдвигаем на 1 и делаем остальной алгоритм.