Vamos definir a função "tamanho não empacotado" u
de uma lista aninhada l
(contendo apenas listas) pelas seguintes regras:
- Se
l
estiver vazio, entãou(l)
é 1. - Se
l
não estiver vazio,u(l)
é igual à soma dos tamanhos desembrulhados de cada elementol
, mais um.
Sua tarefa é escrever um programa (ou função) que recebe uma lista como entrada e gera (ou retorna) o tamanho desembrulhado da lista.
Casos de teste:
[] -> 1
[[[]],[]] -> 4
[[[]],[[[[]],[]]],[[[]],[[[[]],[[],[[]]]]]]] -> 19
[[[[]]]] -> 4
Isso é código-golfe , então o programa mais curto (em bytes) vence.
[[[]][]]
não [[[]],[]]
no seu segundo exemplo?
["This is some text [with square brackets in] ...[& maybe more than one pair]"]
?
]
pareça ser a solução mais curta em muitos idiomas, também existem muitas respostas que realmente resolvem esse desafio por meio da manipulação de listas e, pelo menos em esolangs, contar as ocorrências de um caractere fixo também é bem diferente de contar as ocorrências de um caractere de entrada.
()
vez de[]
?