Проверьте, встречаются ли слова в данном предложении на основе заданного шаблона

Опубликовано: 20 Сентября, 2022

Учитывая шаблон « шаблон » и предложение « s », задача состоит в том, чтобы проверить, встречаются ли слова в данном предложении на основе шаблона, представленного в « шаблоне ».
Примеры :

Input: pattern = “abba”, s = “geeks for for geeks”
Output: true
Explanation: In the pattern, ‘a’ denotes ‘geeks’ and ‘b’ denotes ‘for’. Therefore, sentence ‘s’ follows the pattern ‘pattern’

Input: pattern = “abc”, s = “geeks for geeks”
Output: false

Подход : Данная проблема может быть решена путем обобщения шаблона, образованного словами в данном предложении и символами в данном шаблоне . Затем просто проверьте, совпадают ли обобщенный шаблон и данный шаблон или нет. Выполните следующие шаги, чтобы решить проблему:

  • Создайте карту для хранения каждого слова и присвойте значение каждому уникальному слову в зависимости от его появления .
  • Пример: для предложения «гики для гиков» карта будет [{«гики», 0}, {«для», 1}]
  • Точно так же сопоставьте появление каждого символа в шаблоне.
  • Затем сопоставьте индекс шаблона по индексу на обеих картах и распечатайте результат.

Ниже приведена реализация вышеуказанного подхода:


Сложность по времени : O(NlogN), так как мы вставляем элементы в карту и находим значения из карты внутри цикла.
Вспомогательное пространство : O(N), так как мы используем дополнительное пространство для карты.

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