Ctrl K

Переключить выход схемы

Сложная
Логическая схема записана строкой formula из символов 0, 1, & (И), | (ИЛИ) и скобок. Формула корректна: скобки сбалансированы, пустых скобок нет, операнды и операции чередуются. Приоритета у операций нет: сначала вычисляются скобки, а внутри них операции выполняются строго слева направо. Например, 1|0&0 — это (1|0)&0 = 0. За одну замену можно превратить 0 в 1 или наоборот, либо & в | или наоборот. Верните наименьшее число замен, после которых значение всей формулы станет противоположным текущему.
Пример 1
formula="0|1&0" → 1

Считаем слева направо: (0|1)&0 = 1&0 = 0. Заменим последний 0 на 1: (0|1)&1 = 1. Хватило одной замены.

Пример 2
formula="(1&1)|(1&1)" → 2

Сейчас значение 1. Чтобы получить 0, нужно погасить обе скобки (по одной замене на каждую) или заменить | на & и погасить одну скобку. В обоих случаях 2 замены.

Пример 3
formula="1" → 1

Достаточно заменить единственный символ: 1 → 0.

Ограничения
  • 1 ≤ len(formula) ≤ 10⁵
  • formula состоит из символов 0, 1, &, |, (, )
  • формула корректна, пустых скобок () нет
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПроверка контрольной по арифметике СложнаяСамый длинный сбалансированный отрезок скобок СложнаяКалькулятор со скобками: плюс и минус СложнаяРасчистить ряд шариков СложнаяУпрощение многочлена с буквами Сложная
загружаем Python…
Вход
formula="0|1&0"
Ожидается
1

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