Программа курса:
Внимание! Решать задачи может только авторизованный
пользователь. Пройдите регистрацию на сайте.
Задача 15: Разбор булева выражения
Напишите определение функции evaluateBooleanExpression(expression: str), которая принимает строку expression, представляющую булево выражение, и возвращает результат его вычисления (True или False).
Булево выражение — это выражение, которое оценивается как либо истина (true), либо ложь (false). Оно может иметь один из следующих видов:
't'— оценивается как истина (true).'f'— оценивается как ложь (false).'!(subExpr)'— оценивается как логическое НЕ внутреннего выраженияsubExpr.'&(subExpr1, subExpr2, ..., subExprn)'— оценивается как логическое И (AND) внутренних выраженийsubExpr1, subExpr2, ..., subExprn, гдеn >= 1.|'(subExpr1, subExpr2, ..., subExprn)'— оценивается как логическое ИЛИ (OR) внутренних выраженийsubExpr1, subExpr2, ..., subExprn, гдеn >= 1.
Гарантируется, что входное выражение корректно и соответствует описанным правилам.
Примеры
Пример 1:
Входные данные:expression = "&(|(f))"
Выходные данные:false
Пояснение:
- Сначала вычисляется
|(f)→f. Выражение становится&(f). - Затем вычисляется
&(f)→f. Выражение становитсяf. - Результат:
false.
Пример 2:
Входные данные:expression = "|(f,f,f,t)"
Выходные данные:true
Пояснение:
Логическое ИЛИ (OR) для f, f, f, t возвращает true.
Пример 3:
Входные данные:expression = "!(&(f,t))"
Выходные данные:true
Пояснение:
- Сначала вычисляется
&(f,t)→(false AND true)→false→f. Выражение становится!(f). - Затем вычисляется
!(f)→NOT false→true. - Результат:
true.
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии