📅  最后修改于: 2023-12-03 15:12:43.229000             🧑  作者: Mango
给定一个字符串表示电路门电路图的简约输入,该电路图由逻辑门和双向开关组成。其中,每个逻辑门由其类型(AND,OR,NOT)和其输入门的编号表示。双向开关由其编号表示。现在,您需要计算电路门电路图输出。如果所有双向开关被关闭,则输出为0,否则为1。
单个字符串表示电路门电路图。
整数,表示电路门电路图输出。
AND(3,OR(1,2),NOT(4))
0
首先,解析输入,并创建逻辑门和双向开关的列表。然后,递归计算电路图的输出。如果当前门是逻辑门,则计算其输入门的输出,并根据逻辑门的类型计算其输出。如果当前门是双向开关,则返回其状态,如果它是开的,则输出为1,否则为0。
def calculate_output(input):
gates = []
switches = []
# 解析输入并创建门和开关的列表
parse_input(input, gates, switches)
# 计算输出
return calculate_gates(gates, switches)
def parse_input(input, gates, switches):
# 解析输入并创建门和开关的列表
pass
def calculate_gates(gates, switches):
# 根据逻辑门类型计算输出
pass
时间复杂度:解析输入和计算输出的时间复杂度都是线性的,因此总复杂度为线性的。
空间复杂度:解析输入和创建门和开关的列表的空间复杂度为线性的,因此总复杂度为线性的。