Baixe o aplicativo
Escolha uma pasta e peça ao assistente que leia os arquivos relevantes antes de editá-los. Defina o objetivo e os limites da tarefa.
Reconstrua uma árvore binária com percursos de pré-ordem e em-ordem de até 100 rótulos inteiros distintos. Teste árvores vazias e inclinadas, rejeitando percursos incompatíveis ou rótulos repetidos sem editar as entradas.
Escolha uma pasta e peça ao assistente que leia os arquivos relevantes antes de editá-los. Defina o objetivo e os limites da tarefa.
Escolha um endpoint compatível. As ferramentas disponíveis e a qualidade das respostas dependem do modelo e do servidor configurados.
Confira as alterações e a saída dos comandos. Execute as verificações do projeto antes de aceitar o resultado; código gerado não vem automaticamente testado.
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
def rebuild_tree(preorder, inorder):
for row in (preorder,inorder):
if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
raise ValueError("at most 100 integer nodes")
if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
raise ValueError("same distinct node labels")
positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
def visit(lo,hi):
nonlocal cursor
if lo == hi: return None
value = preorder[cursor]; cursor += 1
at = positions[value]
if not lo <= at < hi: raise ValueError("inconsistent traversals")
left = visit(lo,at)
right = visit(at+1,hi)
return value,left,right
return visit(0,len(inorder))Revise antes de aplicar. Confira as alterações e a saída dos comandos. Execute as verificações do projeto antes de aceitar o resultado; código gerado não vem automaticamente testado.