Recursión: Aplanar las curvas
El anidamiento de arreglos puede verse indirectamente como curvas y barreras de los datos reales incrustados en los arreglos y, por lo tanto, frustra el propósito mismo de acceder a ellos directamente mediante índices y segmentos. Escribe una función recursiva para aplanar esas curvas (es decir, nivelar, planchar, comprimir, arrasar, derribar) y exponer esos datos como un solo arreglo en lugar de un arreglo de arreglos.
Ejemplos
flatten(["Tesh", 121317, ["Love", "of", ["my", ["life", ["and", "my", ["world"], "entirely"]]]]])
➞ ["Tesh", 121317, "Love", "of", "my", "life", "and", "my", "world", "entirely"]
flatten([[[[[["direction"], [372], ["one"], [[[[[["Era"]]]], "Sruth", 3337]]], "First"]]]])
➞ ["direction", 372, "one", "Era", "Sruth", 3337, "First"]
flatten([[4666], [5394], [466], [[["Saskia", [[[[["DXTD"]], "Lexi"]]]]]]])
➞ [4666, 5394, 466, "Saskia", "DXTD", "Lexi"]
flatten([[696], ["friend"], ["power"], [[[["Marcus"]]]], ["philus"]])
➞ [696, "friend", "power", "Marcus", "philus"]
flatten([[["deep"], [[["ocean"]]], [["Marge"]], ["rase", 876]]])
➞ ["deep", "ocean", "Marge", "rase", 876]Notas
- Cada arreglo tiene al menos un elemento.
- Se espera que resuelvas este desafío mediante un enfoque recursivo.
- Puedes consultar la pestaña Recursos para obtener más detalles sobre la recursión en Java.
- Puedes encontrar una versión similar de este desafío mediante este enlace.
- Puedes encontrar una colección de desafíos sobre recursión mediante este enlace.