Nesse desafio, sua tarefa é criar um programa que utilize uma matriz aninhada e retorne uma matriz achatada unidimensional. Por exemplo [10,20,[30,[40]],50]
deve saída [10,20,30,40,50]
.
Entrada
A entrada será uma matriz aninhada (por exemplo [10,20,[[[10]]]]
). Ele conterá apenas números inteiros (negativos e positivos), seqüências de caracteres e matrizes. Você pode usar a entrada como argumento de função, STDIN ou o que for mais adequado ao seu idioma. Você pode assumir que a matriz de entrada não terá uma matriz vazia.
Saída
A saída será uma matriz unidimensional plana com os mesmos elementos do mesmo tipo que na matriz aninhada e na mesma ordem.
Casos de teste
[10,20,30] -> [10,20,30]
[[10]] -> [10]
[["Hi"],[[10]]] -> ["Hi",10]
[[[20],["Hi"],"Hi",20]] -> [20,"Hi","Hi",20]
[[["[]"],"[]"]] -> ["[]","[]"]
Sinta-se à vontade para solicitar esclarecimentos usando comentários. Isso é código-golfe , então o código mais curto em bytes vence!
Nota: Se o seu idioma contiver um built-in para isso, você NÃO deve usá-lo.
Editar
Inclua também um link para um site em que seu código possa ser executado.
unflatten
pergunta, mas nenhuma flatten
pergunta sobre o PPCG.
["[",[["[",],'[',"['['"]]
como um caso de teste.
'
e "
como delimitadores. (Mas eu concordo que um caso de teste envolvendo [
, ]
, "
e \
dentro de uma string seria útil.)