Код Junior Скользящее окно обновлено
Тройки из трёх разных символов
Условие
Сколько подстрок длины 3 состоят из трёх различных символов.
Примеры
countDistinctTriples("xyzzaz") // 1
countDistinctTriples("aababcabc") // 4
countDistinctTriples("") // 0
Как подойти
Для окна длины три Set избыточен: три попарных сравнения дешевле создания и очистки множества на каждом шаге. Граница i + 2 < length закрывает короткие строки без отдельной проверки.
Подсказки: 2
- Окно фиксированной длины три - достаточно трёх сравнений.
- Граница цикла: последняя тройка начинается за два символа до конца.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Скользящее окно»
- Самая длинная серия единиц с k заменами
- Перестановка как подстрока
- Самая длинная серия после k замен
- Самая длинная подстрока без повторов
- Максимальная сумма окна длины k
- Максимум гласных в окне
- Кратчайший подмассив с суммой ≥ target
- Самая короткая подстрока с k различными