Вступить в клуб →
сложнаяpythonМассивы, строки и два указателя

Самая длинная подстрока без повторов: найти её длину за один проход

Реализуйте функцию longest_unique(s).

Вход: s — строка (может содержать любые символы, включая пробелы и цифры; регистр значим: "a" и "A" — разные символы).

Выход: целое число — длина самой длинной подстроки, в которой все символы различны. Подстрока — это идущие подряд символы, не подпоследовательность.

Краевые случаи:

  • пустая строка: вернуть 0;
  • строка из одного символа: вернуть 1;
  • строка из одинаковых символов: вернуть 1.

Требование по сложности: O(n) времени, где n — длина строки. Нельзя перебирать все подстроки вложенными циклами.

Возвращать нужно только длину, сама подстрока не требуется.

заготовка решения

def longest_unique(s):
    # ваш код
    pass

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела