Sliding Window: самая длинная подстрока без повторов

Middle Python algorithms

Условие задания

**Контекст:** задача LeetCode #3, топ-3 по популярности на собесах. Проверяет знание техники **sliding window** — универсального подхода для задач с «окном», «подотрезком», «подмассивом».

## Условие

Дана строка `s`. Найди **длину самой длинной подстроки без повторяющихся символов**.

**Определение подстроки:** непрерывный фрагмент строки (в отличие от подпоследовательности, где символы могут быть несмежными).

## Примеры

[см. код в задании]

## Подводный камень: "dvdf"

**Важно:** когда встречается повтор, `left` должен переместиться за **предыдущее вхождение** повторяющегося символа, а не просто `left += 1`.

Для `"dvdf"`:
- В момент повторной встречи `d` (индекс 2), `left=0`
- Если сделать `left = char_index['d'] + 1 = 1`, окно: `"vdf"` → длина 3 ✓

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

- 0 ≤ len(s) ≤ 50 000
- s может содержать **любые ASCII символы** (цифры, буквы, пробелы, спецсимволы)
- **Unicode** опционально (обсудить с интервьюером)

## Требования

1. Реализовать `length_of_longest_substring(s: str) -> int`
2. Указать **time и space complexity**
3. Обработать edge cases
4. Объяснить технику **sliding window** — это главное на собесе
5. **(Bonus)** Реализовать версию, возвращающую саму подстроку

Темы

algorithms sliding-window hash-map strings

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Sliding Window: самая длинная подстрока без повторов"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: algorithms, sliding-window, hash-map, strings.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «Python»?

На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.

← Все задания