Имеется строка длиной N. Вы можете поменять местами только соседние элементы, и каждый элемент можно поменять местами не более одного раза. Найдите количество перестановок строки, которые могут быть сгенерированы после выполнения перестановок, как уже упоминалось.
Примеры:
Input : 12345 Output : 12345 12354 12435 13245 13254 21345 21354 21435
Источник: Goldman Sachs Интервью
Рассмотрим любой i-й символ в строке. У этого персонажа есть две возможности:
1.) Не меняйте его, то есть не делайте ничего с этим персонажем и переходите к следующему персонажу.
2.) Поменяйте местами. Как это можно поменять местами с соседними,
…… ..a.) Поменяйте местами следующий символ. Поскольку каждый символ можно поменять местами максимум один раз, мы переместимся в позицию (i + 2).
……. б.) Поменяйте местами с предыдущим символом — нам не нужно отдельно рассматривать этот случай, так как i-й символ — это следующий символ (i-1) -го, который аналогичен случаю 2.a.
|
Джава
|
python3
|
C #
|
PHP
|
Выход:
12345 12354 12435 13245 13254 21345 21354 21435
Эта статья предоставлена ekta1994 . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Генерировать лексикографически наименьшую строку из 0, 1 и 2 с разрешенными смежными перестановками
- Создайте все двоичные перестановки так, чтобы перед каждой точкой во всех перестановках было больше или равно 1, чем 0
- Самая длинная общая подпоследовательность с разрешенными перестановками
- Минимальные вставки для формирования палиндрома с разрешенными перестановками
- Генерация всех циклических перестановок числа
- Минимальное количество смежных свопов для преобразования строки в данную анаграмму
- Распечатывать отдельные отсортированные перестановки с дубликатами, разрешенными для ввода
- Генерация всех перестановок строки, которые соответствуют заданным ограничениям
- Перестановки строки так, что нет двух гласных
- Итерационная программа для генерации отдельных перестановок строки
- Проверьте, может ли сетка сортироваться по строкам и столбцам после смежных перестановок
- Самая большая перестановка после не более чем k перестановок
- Минимальные свопы для балансировки брекетов
- Минимальные свопы, необходимые для преобразования одной двоичной строки в другую
- Сформируйте наибольшее число палиндромов, используя не более двух свопов
0.00 (0%) 0 votes