Проверить, лексикографически меньше ли какая-либо анаграмма строки S, чем анаграмма строки T.
Опубликовано: 20 Сентября, 2022
Даны две строки S и T , задача состоит в том, чтобы проверить, является ли какая-либо анаграмма строки S лексикографически меньшей, чем любая анаграмма строки T .
Пример:
Input: S = “xy”, T = “axy”
Output: Yes
Explanation: Rearrange yx into xy and axy into yxa. Then, xy<yxa.Input: S = “cd”, T = “abc”
Output: No
Подход: Подход состоит в том, чтобы проверить, меньше ли лексикографически наименьшая анаграмма строки S, чем лексикографически самая большая анаграмма строки T. Если это так, то ответ — Да . В противном случае Нет . Теперь выполните следующие шаги, чтобы решить этот вопрос:
- Отсортируйте строку S , чтобы получить лексикографически наименьшую анаграмму.
- Отсортируйте строку T в обратном порядке, чтобы получить ее лексикографически самую большую анаграмму.
- Проверьте, больше ли новая строка T новой строки S или нет. Если да, выведите Да . В противном случае выведите Нет .
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N*logN)
Вспомогательное пространство: O(1)