Ctrl K

Вложенная логическая формула

Сложная
Дана строка formula — логическая формула. Вычислите её и верните True или False. Формула устроена так: - t — истина, f — ложь; - !(x) — отрицание формулы x; - &(x1,x2,...,xk) — логическое «И» формул x1, ..., xk, где k ≥ 1; - |(x1,x2,...,xk) — логическое «ИЛИ» формул x1, ..., xk, где k ≥ 1. Аргументы разделены запятыми без пробелов. Формула всегда записана корректно.
Пример 1
formula="&(t,!(f),|(f,t))" → True

!(f) — истина, |(f,t) — истина, значит «И» от трёх истин тоже истина.

Пример 2
formula="|(f,&(t,f),!(t))" → False

&(t,f) — ложь, !(t) — ложь, и «ИЛИ» от трёх ложных значений даёт ложь.

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

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