Dada una cadena correctamente entre paréntesis como entrada, genera una lista de todas las subcadenas no vacías dentro de paréntesis coincidentes (o fuera de todos los paréntesis), con paréntesis anidados eliminados. Cada subcadena debe ser la secuencia de caracteres en exactamente los mismos paréntesis coincidentes. Las subcadenas se deben enumerar en orden de profundidad, y las subcadenas de la misma profundidad se deben enumerar en el orden en que aparecen en la cadena. Suponga que la entrada siempre está entre paréntesis correctamente.
Puede suponer que la entrada contiene solo letras minúsculas y paréntesis ASCII.
Su respuesta debe ser una función que, cuando se le da una cadena, devuelve una lista de cadenas.
Ejemplos:
'a(b)c(d)e' -> ['ace', 'b', 'd']
'a(b(c)d)e' -> ['ae', 'bd', 'c']
'a((((b))))' -> ['a', 'b']
'a()b' -> ['ab']
'' -> []
'a' -> ['a']
'(((a(b)c(d)e)f)g)h' -> ['h', 'g', 'f', 'ace', 'b', 'd']
'ab(c(((d)ef()g)h()(i)j)kl)()' -> ['ab', 'ckl', 'hj', 'efg', 'i', 'd']
Pocos bytes ganan.
i
está menos anidado que d
.
'i'
y'd'
en el orden correcto en el último caso de prueba?