Конкатенация коротких уникальных слов

Medium
Найдите все стартовые индексы i, для которых среди k подряд идущих слов words[i..i+k) все слова попарно различны. Верните список таких i по возрастанию.

Примеры:

Вход: {"words": ["bar", "foo", "bar", "the"], "k": 2}
Выход: [0, 1, 2]
Объяснение: При k=2 окна (bar,foo), (foo,bar), (bar,the) — во всех слова разные → [0,1,2].
Вход: {"words": ["a", "b", "c", "a"], "k": 3}
Выход: [0, 1]
Объяснение: Окна длины 3: (a,b,c) и (b,c,a) — без повторов → старты [0,1]; окно (c,a) короткое и не рассматривается.
Вход: {"words": [], "k": 1}
Выход: []
Объяснение: Пустой список слов → [].

Ограничения:

0 <= n <= 10^5; sum lengths of words <= 10^6; слова содержат буквы/цифры

Теги:

Строки Хэш-таблица

Комментарии (0)

Войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!