Название может показаться, что это очень распространенный вопрос, но, пожалуйста, несите меня.Поиск Лексикографически наименьшее расположение некоторой строки
В принципе, можно сказать, что в каждом индексе строки вы знаете, какие алфавиты могут быть в этом индексе, а затем вы хотите найти лексикографически наименьшее расположение.
Так, например:
Index | Options
-------|----------
1 | 'b'
2 | 'c', 'a'
3 | 'd', 'c'
4 | 'c', 'a'
Итак, следовательно, о/р должен быть badc
. И да, кстати, персонажи не могут повторить так жадный алгоритм.
Я думаю, что мы могли бы использовать какой-то поиск по ширине, создавая очередь или что-то вроде строки, и каждый раз, когда мы находили, мы не могли создать другую перестановку, вы выпадаете из списка. Сомнение это оптимально, хотя должно быть что-то в O(N)
. Есть идеи?
И нет, я не думаю, что C это плохо, но я предпочел бы фрагменты кода в C/C++: р
Спасибо!
Либо это должно быть «bacd», либо я еще не понимаю вопрос. – ecotax
Каков максимальный размер строки? – Tempux
Как вывести 'badc', можете ли вы объяснить? –