Найдите минимальное расстояние между данными двумя словами

Опубликовано: 23 Февраля, 2023

Учитывая список слов , за которыми следуют два слова, задача состоит в том, чтобы найти минимальное расстояние между заданными двумя словами в списке слов.

Примеры :

Input: S = { “the”, “quick”, “brown”, “fox”, “quick”}, word1 = “the”, word2 = “fox”
Output: 3
Explanation: Minimum distance between the words “the” and “fox” is 3

Input: S = {“geeks”, “for”, “geeks”, “contribute”,  “practice”}, word1 = “geeks”, word2 = “practice”
Output: 2
Explanation: Minimum distance between the words “geeks” and “practice” is 2

Подход: выполните шаги, чтобы решить эту проблему:

  • Инициализируйте переменные d1 = -1, d2 = -1 и ans = INT_MAX.
  • Пройдите по строке и проверьте:
    • Если s[i] равно word1 , тогда обновите d1 = i.
    • Если s[i] равно word2 , тогда обновите d2 = i.
    • Если d1 != -1 и d2 != -1, то обновить ans = min(ans, abs(d1-d2)).
  • После обхода строки верните ans .

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

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