Как переставить элементы в списке, чтобы одинаковые значения рядом не стояли?

Дан список, например: a=[1,2,3,3,4,5,5,5,6,7,8,9,9], необходимо переставить элементы списка, чтобы получилось например так: a^=[1,2,3,4,3,5,6,5,7,5,9,8,9]. Т.е. одинаковые элементы рядом не стоят.


Ответы (1 шт):

Автор решения: Aziz Umarov
  1. Пробегаете по массиву и вырезаете из неги повторяющиеся элементы в другой.
  2. У вас получился массив не повторяющихся и массив повторений.
  3. Пробегаете по дубликатам до конца и пытаетесь вставить в любое место первого предварительно проверив соседние. Если соседний совпадают идете дальше до конца. если конец достигнут и вы не вставили элемент то перестановка не возможна.
→ Ссылка