Код Middle Скользящее окно обновлено
Самая длинная подстрока без повторов
Условие
Длина самой длинной подстроки без повторяющихся символов.
Примеры
lengthOfLongestSubstring("abcabcbb") // 3
lengthOfLongestSubstring("bbbbb") // 1
lengthOfLongestSubstring("pwwkew") // 3
Как подойти
Признак «непрерывный участок + условие» → скользящее окно. Расширяй right, чини left, записывай ответ. Ловушка: lastSeen может указывать левее текущего окна - left двигаем только вперёд, иначе окно схлопнется назад.
Подсказки: 2
- Окно [left, right] должно всегда оставаться без повторов.
- Встретил повтор - двигай left за прошлую позицию символа, но только вперёд.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Скользящее окно»
- Самая длинная серия единиц с k заменами
- Перестановка как подстрока
- Максимум гласных в окне
- Кратчайший подмассив с суммой ≥ target
- Самая короткая подстрока с k различными
- Самая длинная подстрока без повторов: где начинается
- Лучшие k дней подряд по выручке
- Минимальное окно, содержащее все символы шаблона