Проверить, лексикографически меньше ли какая-либо анаграмма строки 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. Если это так, то ответ — Да . В противном случае Нет . Теперь выполните следующие шаги, чтобы решить этот вопрос:

  1. Отсортируйте строку S , чтобы получить лексикографически наименьшую анаграмму.
  2. Отсортируйте строку T в обратном порядке, чтобы получить ее лексикографически самую большую анаграмму.
  3. Проверьте, больше ли новая строка T новой строки S или нет. Если да, выведите Да . В противном случае выведите Нет .

Ниже приведена реализация описанного выше подхода.


Временная сложность: O(N*logN)
Вспомогательное пространство: O(1)

РЕКОМЕНДУЕМЫЕ СТАТЬИ