SP8106 ACPC10C - Normalized Form
题目描述
布尔表达式可以用析取范式或合取范式表示。在析取范式中,表达式由一个或多个子表达式通过逻辑“或”连接构成,其中每个子表达式都用合取范式书写。反之,合取范式中的表达式是通过逻辑“与”将多个按析取范式书写的子表达式连接在一起。
AND/OR 树是一种图形化的表示方法,用于描述布尔表达式的析取或合取范式。由于范式中子表达式的形式交替出现,AND/OR 树的子树会根据它们的深度交替成为 AND 树或 OR 树。比如,布尔表达式 \((A (B C)) (D E)\) 在第一层(最顶层)和第三层是 AND 树。
请编写一个程序来计算给定的 AND/OR 树表达式的值。
输入格式
你的程序将针对一个或多个测试用例进行测试。每个测试用例占一行,长度不超过 32,000 个字符,格式如下:
\[ (E_1 \ E_2 \ \ldots \ E_n) \]
其中 \(n > 0\),每个 \(E_i\) 可以是 T(代表真)、F(代表假),或者是一个按照相同格式的子表达式。
最深的一层树为 AND 树。最后一个测试用例之后会以一行 `()` 作为结束标记。
输出格式
对于每个测试用例,输出如下格式的结果:
`k. E`
其中 k 表示测试用例的编号(从 1 开始),E 是根据该测试用例表达式的求值结果为 true 或 false。
**本翻译由 AI 自动生成**