Ctrl K

Палиндром после пары правок

Средняя
Дана строка text из строчных латинских букв и список запросов queries, где queries[i] = [left, right, k]. Для каждого запроса возьмите кусок text[left..right] (включительно). Буквы в нём можно как угодно переставить, а затем заменить не больше k букв на любые другие строчные латинские буквы. Ответ на запрос — True, если так можно получить палиндром, иначе False. Запросы независимы: исходная строка не меняется. Каждая замена меняет ровно одну букву. Верните список ответов в порядке запросов.
Пример 1
text="racecar", queries=[[0, 6, 0], [1, 3, 0], [1, 3, 1], [2, 5, 1]] → [True, False, True, True]

«racecar» уже палиндром. «ace» нельзя переставить в палиндром без замен, но с одной заменой можно (например, «aca»). «ceca» переставляется в «caac» без замен, тем более с одной.

Пример 2
text="xyzw", queries=[[0, 3, 1], [0, 3, 2], [2, 2, 0]] → [False, True, True]

В «xyzw» четыре разные буквы: одной замены мало, двух хватает («xyyx»). Одна буква «z» — палиндром.

Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • 1 ≤ len(queries) ≤ 10⁵
  • 0 ≤ left ≤ right < len(text)
  • 0 ≤ k ≤ len(text)
  • text состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧётные гласные СредняяРазрез на равные по XOR половины СредняяПочти чётные подстроки СредняяТрёхбуквенные палиндромы в слове СредняяПлюс одна буква Средняя
загружаем Python…
Вход
text="racecar", queries=[[0, 6, 0], [1, 3, 0], [1, 3, 1], [2, 5, 1]]
Ожидается
[True, False, True, True]

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