今天浙江理工校赛的D题。
比赛结束后在网上看了文章才做出来的。
Problem D: 逻辑运算
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 248 Solved: 36
Description
还记得大学里学过的模电么,今天就让我们将与或非变成一道题吧。
给你一个与或非的表达式,求出这个表达式的值,表达式总共有八种字符。
三种逻辑运算符按照优先级排列如下。
‘!’:表示取反。
‘&’:逻辑与。
‘|’:逻辑或。
两个字符‘T’,‘F‘分别表示true和 false。
另外还有左右括号,空格三种字符。跟一般的表达式一样,括号可以改变优先级。
Input
每组数据输入一行字符串,字符串长度小于等于100.
Output
输出一个数0或1,表示逻辑表达式的答案。
Sample Input
T
Sample Output
1
用2个栈,一个存储运算符,一个存储运算的数字。
对于连个相继出现的操作符θ1和θ2 有三种关系:大于、等于和小于。由此可以列出“+-*/”之间的优先级。如下表:
! & | ( ) #
! > > > < > >
& < > > <