Ctrl K

Замкнутые куски строки

Средняя
Назовём кусок (непрерывную подстроку) строки text **замкнутым**, если: - каждая буква, которая в нём встречается, не встречается в text больше нигде, кроме этого куска; - кусок не совпадает со всей строкой text. Дано число need. Можно ли выбрать need замкнутых кусков, которые попарно не пересекаются? Верните True или False. При need = 0 ответ всегда True.
Пример 1
text="xyxpqrzz", need=3 → True

Подходят «xyx», «pqr» (или отдельно «p», «q», «r») и «zz»: буквы каждого куска больше нигде не встречаются. Например, «xyx», «p» и «q» — три непересекающихся куска.

Пример 2
text="abba", need=1 → True

Кусок «bb» замкнут: буква b встречается только в нём. Значит, один кусок вырезать можно.

Пример 3
text="abab", need=1 → False

Любой кусок с a или b тянет за собой обе буквы целиком, то есть всю строку, а её брать нельзя.

Ограничения
  • 2 ≤ len(text) ≤ 5·10⁴
  • text состоит из строчных латинских букв
  • 0 ≤ need ≤ 26
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБез одинаковых соседей СредняяСлова, спрятанные в тексте СредняяСлово растёт по букве СредняяРазное число повторов СредняяРаскладка на девяти кнопках Средняя
загружаем Python…
Вход
text="xyxpqrzz", need=3
Ожидается
True

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