Итак, у меня есть список групп
[['a', 'b'], ['c', 'd', 'e'], ['f']]
и мне нужно перетасовать сплющенную версию этого списка
[a, b, c, d, e, f]
чтобы элементы одной и той же группы заканчивались на некотором расстоянии друг от друга. E. g.
[a, c, b, d, f, e]
, а не [a, c, b, d, e, f]
, потому что d
и e
находятся в одной и той же группе.
Мне все равно, если расстояние - это всего лишь один элемент или больше, но любой элемент не должен находиться рядом с другим элементом из его группы. Есть ли какой-нибудь алгоритм для этого?
Алгоритм также должен сказать, не может ли это сделать.