Ctrl K

Битовые строки в пределах бюджета

Средняя
Дан массив words из строк, составленных из символов 0 и 1, и два числа zeros и ones. Выберите как можно больше строк из массива так, чтобы во всех выбранных строках вместе было не больше zeros нулей и не больше ones единиц. Каждую строку можно взять не больше одного раза. Верните наибольшее количество строк, которое можно выбрать.
Пример 1
words=["01", "110", "0", "1000"], zeros=3, ones=2 → 2

Три строки не помещаются никак: любые три вместе требуют больше 3 нулей или больше 2 единиц. Две помещаются — например, "01" и "0" (2 нуля и 1 единица), поэтому ответ 2.

Пример 2
words=["1", "1", "0"], zeros=1, ones=1 → 2

Можно взять одну "1" и "0": вторая единица уже не помещается.

Ограничения
  • 1 ≤ len(words) ≤ 600
  • 1 ≤ len(words[i]) ≤ 100
  • words[i] состоит только из 0 и 1
  • 0 ≤ zeros, ones ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазбиение на слова из словаря СредняяФраза на табло СредняяСлова, спрятанные в тексте СредняяСлово растёт по букве СредняяНитка бус без повторов Средняя
загружаем Python…
Вход
words=["01", "110", "0", "1000"], zeros=3, ones=2
Ожидается
2

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