Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Reconstruye un árbol binario desde listas de preorden e inorden con hasta 100 etiquetas enteras distintas.
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))Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Prueba árboles vacíos y sesgados, rechazando recorridos incompatibles o etiquetas repetidas sin modificar las entradas.
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
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))Los datos estructurados pueden superar comprobaciones básicas de pertenencia y aun así no describir una estructura válida. BranchSpire es un espacio de programación con IA para Windows donde examinar esa diferencia con los archivos de tu proyecto a la vista. Inicia una conversación sobre el contrato de entrada y el objeto que espera recibir el código llamante antes de pedir cambios de código.
Una tarea concreta es revisar la reconstrucción a partir de recorridos en preorden e inorden. Aporta un árbol válido pequeño y un par de recorridos incoherentes, y pide al modelo conectado que inspeccione dónde los distingue la implementación. Indica el requisito de etiquetas distintas para que el código propuesto no asuma silenciosamente una unicidad que el código llamante nunca estableció.
Revisa la interfaz circundante además de la lógica recursiva. Decide cómo deben notificarse los datos inválidos y si los consumidores dependen de una representación concreta del resultado. Ejecuta en tu proyecto casos de entrada vacía, un solo nodo y combinaciones inválidas. Un ejemplo satisfactorio demuestra un recorrido; los casos explícitos de rechazo ayudan a establecer los límites de los datos aceptados.
BranchSpire se conecta a endpoints admitidos compatibles con OpenAI o de Anthropic, con credenciales cuando sean necesarias. Puedes elegir un modelo de IA ablacionado disponible, mientras que su servidor determina las herramientas y los límites de contexto. Usa esa conexión para desarrollar y cuestionar una propuesta, y evalúa después las diferencias de código y los resultados de ejecución según la estructura que exige tu aplicación.
El orden de los recorridos también debe describir una estructura coherente. Incluye un orden inválido con las mismas etiquetas al analizar la tarea. Pide al modelo que identifique el punto donde la implementación propuesta detecta esa incoherencia.
Solo si el contrato de reconstrucción las admite explícitamente. La tarea ilustrada supone etiquetas distintas. Revisa conjuntamente la validación y el código llamante para rechazar deliberadamente entradas ambiguas, en lugar de producir una estructura basada en un supuesto no documentado.
Especifica la representación de los nodos, el valor del árbol vacío y el orden de los hijos que esperan los consumidores. Un árbol matemáticamente equivalente puede romper la integración si cambia su representación. Inspecciona esos consumidores antes de aceptar una refactorización más amplia.
Aporta casos cortos con resultados conocidos y pide una explicación de los límites y las rutas de fallo. Revisa las diferencias reales del código y ejecuta esos casos con las herramientas del proyecto. Evita depender de una explicación larga sin comprobaciones correspondientes.
BranchSpire · Actualizado 2026-10-25