逻辑计算
题目描述:
常用的逻辑计算有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))