Я хочу ранжировать и отменять рейтинг подмножеств, заданных длиной. Подмножество определяется следующим образом:
Пример для длины перестановки 5 с элементами 1,1,2,2,3
У нас есть входная строка: 0101
длина 4 (всегда длина перестановки - 1).
0 означает, что 2 последовательных элемента увеличиваются или равны.
1 означает, что 2 последовательных элемента уменьшаются.
Для этой цепочки битов существует подмножество со следующими перестановками с элементами 1,1,2,2,3
:
1,2,1,3,2
Ранг 0
1,3,2,2,1
Ранг 1
2,2,1,3,1
Ранг 2
2,3,1,2,1
Ранг 3
Определенное подмножество Bitstring подстановок, которые я хочу оценить и отменить? Существует ли способ algotrithmi c для заданных элементов перестановки и цепочки битов, чтобы сделать это без создания каждой перестановки и проверки?
Вот решение для перестановок без дубликатов, может быть, это можно адаптировать:
ранжирование перестановок с последовательностью DI
Заранее спасибо.