Um conjunto de dominó padrão possui 28 peças únicas:
Dada uma lista de 28 ou menos dominós exclusivos, produza a lista necessária para fazer um conjunto completo.
Dominó de entrada e de saída são especificados por dois dígitos - o número de sementes de cada lado do dominó, por exemplo 00
, 34
, 40
, 66
.
Os dígitos podem ser fornecidos em qualquer ordem, assim 34
como o mesmo dominó que43
Exemplo de entradas
00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66
00 10 11 20 21 22 30 31 32 33 40 41 42 43 44 50 51 52 53 54 55 60 61 62 63 64 65 66
00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 34 35 36 44 45 46 55 56 66
00 02 03 04 05 06 11 13 14 15 16 22 24 25 26 33 35 36 44 46 55 66
<empty list>
Saídas de exemplo correspondentes
<empty list>
<empty list>
33
01 12 23 34 45 56
00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66
03 16
=[0, 3], [1, 6]
?Respostas:
CJam, 11 bytes
Um bloco (função) sem nome com E / S como uma lista de pares de números inteiros.
Teste aqui.
Explicação
fonte
{}
suportes?Pitão,
1210 bytesEntrada e saída em formato
[[0, 0], [0, 1], ...]
.Experimente aqui.
Agradecemos a @ MartinBüttner por salvar 2 bytes com um formato de entrada / saída diferente!
fonte
JavaScript (ES7 proposto),
8076 bytesRecebe a entrada como uma sequência separada por espaço e retorna uma matriz de sequências. As compreensões de matriz realmente contribuem para este.
fonte
Ruby 74 bytes
Pega uma matriz de strings, retorna uma matriz de strings.
Comentado no programa de teste
Saída
No último exemplo (lista vazia de entrada), observe a ordem de geração da lista completa de dominós usando aritmética modular. 7 duplos são gerados primeiro, depois 7 dominós com uma diferença de 1 (ou 6) pips entre cada lado, depois 7 dominós com uma diferença de 2 (ou 5) pips e, finalmente, 7 dominós com uma diferença de 3 (ou 4) pips.
fonte
Julia 0.6 , 47 bytes
Experimente online!
(Início do intervalo corrigido graças a JayCe.)
48 bytes
Experimente online!
fonte
Perl, 48 + 1 = 49 bytes
Requer a
-n
bandeira e o livre-M5.010
|-E
:Resposta bastante chata no geral, mas aqui vai uma versão não destruída:
fonte
Python 2 , 91 bytes
Experimente online!
fonte
JavaScript (SpiderMonkey) , 69 bytes
Experimente online!
otimizado a partir de Neil
fonte
R , 111 bytes
Experimente online!
Não tem muito orgulho disso, mas R não é muito "empolgado" em dividir / concatenar cordas ...
fonte
05AB1E ,
1211 bytes-1 byte graças a @Emigna .
Experimente online.
Explicação:
fonte
Mathematica, 49 bytes
Entrada é uma lista da lista de números inteiros.
fonte
Java 8, 105 bytes
Um lambda vazio aceitando um mutável
java.util.Set<String>
.Experimente Online
Ungolfed
Agradecimentos
fonte
int i=0,a,b;while(i<49
pode serfor(int i=0,a,b;i<49;
.Geléia , 8 bytes
Experimente online!
Argumento é uma lista de 2 listas de números inteiros. O rodapé transforma a entrada do formato nos casos de teste para o formato que esta solução aceita.
fonte
J,
26, 24 bytes-2 bytes graças ao FrownyFrog
(;(,.i.,])&.>i.7)
calcula o conjunto completo (essa parte poderia ser ainda mais jogada, eu acredito. E, por favor, veja se ...)-.
é "definido menos"/:~"1
solicita cada uma das entradasExperimente online!
Original
Experimente online!
fonte
(;(,.i.,])&.>i.7)
salva 2 (inverte a ordem)Python 2,
8986 bytesEconomizou alguns bytes simplificando a geração de conjuntos de dominós.
Experimente online!
Pega uma lista de cadeias de caracteres como ["00", "10", "02] como argumento para os dominós. Retorna objetos de conjunto python, que são listas distintas não ordenadas.
Explicação
fonte
Haskell, 65 bytes
Exemplo de uso:
Itere
a
em um loop externo sobre todos os dígitos de0
para6
eb
em um loop interno sobre todos os dígitos dea
para6
e mantenha aquelesab
onde nemab
nemba
são encontrados na sequência de entrada.fonte
Sério, 16 bytes
Recebe entrada como uma lista de strings, gera uma lista de strings
Experimente online!
Explicação:
Na verdade , 13 bytes (não concorrentes)
Isso é idêntico à resposta Sério (com exceção da entrada implícita e
♂S
é uma maneira mais curta de encurtar cada sequência de entrada).Experimente online!
fonte
raquete
fonte