逻辑计算
题目描述:
常用的逻辑计算有And(表示为&);Or(表示为|);Not(表示为!)。其中,他们的优先级关系是Not(!)>And(&)>Or(|)。
输入描述:
1、测试用例中间无空格,无需考虑空格。
2、测试用例表达式只会出现如下字符:“0”,“1”,“(”,“)”,“&”,“|”,“!”。
3、测试用例所给的输入都是合法输入,无需要考虑非法输入。
4、测试用例长度不会超过128个字符。
5、括号可以重复嵌套。
例如:
1 | ( 1 & 0 ) 返回值:1
1 & 0 | 0 & 1 返回值:0
! 0 & 1 | 0 返回值:1
( ( ! 0 & 1 ) ) | 0 返回值:1
输出描述:
输出逻辑运算后的最终结果:0或者1
示例1:
输入:! ( 1 & 0 ) | 0 & 1
输出:1
示例2:
输入:! ( 1 & 0 ) & 0 | 0
输出:0
def fun(str):
k = 0
while len(str) != 1:
str = str.replace('!1', '0')
str = str.replace('!0', '1')
str = str.replace('1&0', '0')
str = str.replace('0&1', '0')
str = str.replace('1&1', '1')
str = str.replace('0&0', '0')
str = str.replace('1|1', '1')
str = str.replace('0|1', '1')
str = str.replace('1|0', '1')
str = str.replace('0|0', '0')
str = str.replace('(1)', '1')
str = str.replace('(0)', '0')
k += 1
if k > 20:
break
return str
string = input()
print(fun(string))