Dada uma lista ordenada de cadeias de letras no mesmo caso (az XOR AZ), em que cada cadeia é precedida por 0 ou mais caracteres de espaço (), produz a mesma lista, mas com as cadeias classificadas em cada nível de indentação. As profundidades de indentação sob pais diferentes contam como listas distintas para fins de classificação.
Exemplo
Se sua entrada for:
bdellium
fox
hound
alien
aisle
wasabi
elf
alien
horseradish
xeno
irk
wren
tsunami
djinn
zebra
sua saída deve ser
aisle
horseradish
xeno
wasabi
alien
elf
bdellium
alien
fox
hound
djinn
zebra
irk
tsunami
wren
Se desejar, pense nela como uma lista de diretórios e você precisa classificar os nomes em cada diretório.
Minutiae
- Um item pode ser recuado por qualquer número de espaços. Se for recuado pelo mesmo número de espaços que o item anterior, ele pertence à mesma hierarquia de classificação que o item anterior. Se for recuado por mais espaços, será o início de uma nova sub-hierarquia.
- Se uma linha é recuada por menos espaços do que a linha acima, ela se vincula ao subgrupo mais próximo acima dela com o mesmo # ou menos espaços antes dela (como rábano no exemplo acima, que se vincula ao grupo wasabi acima dela porque wasabi é o primeiro item acima dele a não ter mais espaços do que o rábano)
- Você deve preservar o nível de indentação de cada item de entrada em sua saída
- Guias na saída não são permitidas
- A primeira linha da entrada nunca será recuada
- Seu programa deve manipular pelo menos uma das seqüências de caracteres todas em maiúsculas e minúsculas; não precisa lidar com ambos.
Pontuação
Este é um código-golfe , então a resposta que usa o menor número de bytes vence.
['a','..b', '.c', '..d']
, qual deve ser a saída? ['a','..b', '.c', '..d']
ou ['a','.c','..b', '..d']
ou alguma outra coisa? (Estou usando o '.'
espaço em vez de clareza visual).