Учитывая строку str, состоящую из строчных букв и целого числа K , вы можете выполнить следующие операции над str
- Инициализируйте пустую строку X = «» .
- Возьмите любой символ из первых K символов str и добавьте его в X.
- Удалить выбранного персонажа с ул .
- Повторите вышеуказанные шаги, пока в str.
Задача состоит в том, чтобы сгенерировать X таким образом, чтобы он был минимально лексикографически, а затем распечатать сгенерированную строку.
Примеры:
Input: str = “geek”, K = 2
Output: eegk
Operation 1: str = “gek”, X = “e”
Operation 2: str = “gk”, X = “ee”
Operation 3: str = “k”, X = “eeg”
Operation 4: str = “”, X = “eegk”Input: str = “geeksforgeeks”, K = 5
Output: eefggeekkorss
Подход: чтобы получить лексикографически наименьшую строку, нам нужно брать минимальный символ из первых K символов каждый раз, когда мы выбираем символ из str . Для этого мы можем поместить первые K символов в priority_queue (min-heap), а затем выбрать наименьший символ и добавить его в X. Затем поместите следующий символ в строке str в приоритетную очередь и повторяйте процесс, пока не останется символов для обработки.
Ниже приведена реализация вышеуказанного подхода:
|
Джава
|
Выход:
eefggeekkorss
Рекомендуемые посты:
- Лексикографически наименьшая строка, образованная добавлением символа из первых K символов данной строки
- Лексикографически наименьшая строка, образованная удалением не более одного символа
- Лексикографически самая большая строка, образованная из символов в диапазоне L и R
- Поменяйте местами все вхождения двух символов, чтобы получить лексикографически наименьшую строку
- Минимальные перемещения для формирования строки путем добавления символов или добавления самой строки
- Лексикографически наименьшая строка, расстояние Хемминга от которой составляет ровно K
- Количество раз вторая строка может быть сформирована из символов первой строки
- Найдите строку так, чтобы каждый символ был лексикографически больше, чем его ближайший следующий символ
- Проверьте, может ли вторая строка быть сформирована из символов первой строки
- Найти наименьшее окно в строке, содержащей все символы другой строки
- Лексикографически следующая большая строка с использованием того же набора символов
- Лексикографически наименьшая строка длиной N и суммой K
- Лексикографически наименьшая перестановка строки с заданными подпоследовательностями
- K-я лексикографически наименьшая уникальная подстрока данной строки
- Запросы, чтобы ответить на X-ю самую маленькую подстроку лексикографически
0.00 (0%) 0 votes