Ctrl K

Повторяющиеся участки гена

Средняя
Цепочка ДНК записана строкой strand из букв A, C, G и T. Найдите все участки длины ровно 10 (подстроки из 10 подряд идущих букв), которые встречаются в strand больше одного раза. Вхождения могут перекрываться. Каждый такой участок включите в ответ один раз; порядок участков в ответе не важен.
Пример 1
strand="GATTACAGATTACAGAT" → ['GATTACAGAT']

Фрагмент GATTACAGAT начинается в позициях 0 и 7. Остальные окна длины 10 встречаются по одному разу.

Пример 2
strand="CCCCCCCCCCCC" → ['CCCCCCCCCC']

Окно CCCCCCCCCC встречается трижды (окна могут перекрываться), но в ответ входит один раз.

Пример 3
strand="ACGT" → []

Строка короче 10 букв, окон нет — ответ пустой.

Ограничения
  • 1 ≤ len(strand) ≤ 10⁵
  • Каждый символ strand — одна из букв A, C, G, T
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВсе двоичные коды внутри СредняяДва слова через одну букву СредняяПодстроки с поровну цифр СредняяСамый длинный повтор СложнаяОтрезок в обоих регистрах Лёгкая
загружаем Python…
Вход
strand="GATTACAGATTACAGAT"
Ожидается
['GATTACAGAT']

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 140 тестов на сервере, включая скрытые.