Relacionado: Validar um gráfico de caule e folhas
Entrada
Uma lista não vazia de números inteiros positivos. Se necessário, eles podem ser tomados como seqüências de caracteres. Você não pode assumir que está classificado.
Resultado
Um gráfico de caule e folha dos números. Em um enredo deste e folhas-tronco, os números são ordenados em hastes por dezenas, então todos os números que se encaixam em que estaminais têm seus entes valor colocado na haste, e então todos são classificadas. Nesse desafio, as novas linhas separam as hastes e os espaços separam as hastes das folhas.
Você pode incluir ou excluir todas as hastes vazias que estão entre hastes não vazias.
Casos de teste
(as listas podem ser obtidas no padrão da lista do seu idioma, usei o JSON para os itens abaixo)
Incluindo hastes vazias:
[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]
0 11233333
1 0558
2
3
4
5
6
7
8
9
10 0
[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]
4 034499
5 0145899999
[10000, 10100]
1000 0
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010 0
Excluindo hastes vazias:
[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]
0 11233333
1 0558
10 0
[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]
4 034499
5 0145899999
[10000, 10100]
1000 0
1010 0
Respostas:
R , 12 bytes
Experimente online!
Explicação:
fonte
stem
que seria suficiente, pois é preciso uma matriz como entrada.stem
:)Gelatina , 17 bytes
Experimente online!
fonte
Python 2 ,
787579 bytesExperimente online!
fonte
Retina ,
3830 bytesAgradecemos a Neil por salvar 2 bytes e a Leo por salvar outros 6.
A contagem de bytes assume a codificação ISO 8859-1.
Entrada é uma lista de números inteiros separados por avanço de linha. A saída omite prefixos vazios.
Experimente online!
fonte
(?<=(\b.+ ).)¶\1
economiza dois bytes.JavaScript (ES6), 89 bytes
fonte
Python 2 ,
1461401331241201181091079086849182817063 bytes-6 bytes graças a Rod. -9 bytes graças a ovs.
Experimente online!
Ok, algo está um pouco instável. Como todos os programadores de Python devem saber, os dict não são ordenados, o que significa que a ordem original dos pares de valores-chave não é preservada. No entanto, no meu código atual, não classifico o ditado resultante. No entanto, eu testei várias vezes, verificando a igualdade e a ordem todas as vezes, e o ditado sempre dá certo. Se alguém refutar que sempre dá certo ou souber por que isso funciona, eu adoraria saber.
Entrada como uma lista python e saída como um ditado. Exemplo:
Entrada:
Resultado:
fonte
r[i/10]=r.get(i/10,'')+`i%10`
para 82 bytesMathematica, 103 bytes
Código retirado da resposta excluída de @ user202729
fonte
> <> , 84 bytes
Experimente online ou no parque infantil de peixes !
Assume que os números de entrada já estão na pilha .
Explicação: Primeiro, classificamos a pilha usando uma classificação de bolha , com este bit de código:
Em seguida, calculamos o quociente inteiro da primeira coisa na pilha usando 10
::a%-a,
, colocamos isso no registro e percorremos a pilha imprimindo os últimos dígitos dos números até que seus primeiros dígitos não sejam os mesmos do registro, depois incrementando o registro e continuando. Quando chegamos ao final da lista, marcado com a0
, paramos.fonte
PostgreSQL, 53 bytes
A lista de números inteiros deve residir em uma
integer
colunan
de uma tabela existentet
. O resultado é uma tabela de duas colunas: cada linha consiste em uma coluna "tronco" e uma coluna "folhas". A coluna "folhas" está no formato de matriz JSON. (Conforme observado nos comentários, não é necessário aderir exatamente ao formato mostrado em "Casos de teste".)Embora a ordem das hastes não seja garantida (para salvar 10 bytes,
ORDER BY 1
seja omitida no final da consulta), nos meus testes, as hastes pareciam terminar na ordem correta.Ver resultado no SQL Fiddle
fonte