Você tem um conjunto de peças com os símbolos da tabela periódica. Cada símbolo aparece uma vez. Você está pensando em palavras para criar, mas quer saber se é possível ou não.
O desafio
Escreva um programa em seu idioma favorito que use uma string como parâmetro de entrada. Você pode assumir que a entrada não é nula, não possui espaços e consiste em caracteres ASCII.
Seu programa deve pegar essa sequência e gerar um valor de verdade, se essa palavra puder ser composta de símbolos da tabela periódica de elementos, e um valor de falsey, se a palavra não puder.
Para tornar esse desafio mais difícil, você não pode usar um símbolo duas vezes. Portanto, se você usar nitrogênio, N
não poderá usá-lo N
novamente na mesma palavra.
Regras
As brechas padrão não são permitidas. Você pode usar símbolos dos elementos 1-118 (Hidrogênio para Ununoctium). Você pode encontrar uma lista de todos os elementos aqui . Você pode ler a lista de símbolos de um arquivo ou inserir argumentos, se desejar.
Casos de teste:
Laos - true (LaOs)
Amputation - true (AmPuTaTiON)
Heinous - true (HeINoUS)
Hypothalamus - true (HYPoThAlAmUS)
Singapore - true (SiNGaPoRe)
Brainfuck - true (BRaInFUCK)
Candycane - false
Este é um desafio de código de golfe, o código mais curto vence.
ANTES DE FECHAR COMO DUPLICADO: Embora isso possa parecer semelhante a esse desafio , acho que é diferente porque não é 'Gere uma lista de todas as palavras possíveis da tabela periódica', é 'Pegue entrada arbitrária e determine se pode ser feito a partir da tabela periódica '
Respostas:
05AB1E, 16 bytes
Explicado
Aviso: extremamente lento. Eu recomendo testar um subconjunto muito menor de elementos no intérprete online.
Leva a lista de elementos como primeiro argumento.
Leva a palavra para testar como segundo argumento.
Retorna 1 para verdadeiro e 0 para falso.
Experimente on-line em um pequeno subconjunto de elementos
fonte
Braquilog , 7 bytes
Ligue com a lista de símbolos (todos em minúsculas) como Entrada e a palavra como Saída, por exemplo
run_from_atom('spc~@l.', ["he":"n":"o":"li"], "Nohe").
.Aviso: isso é extremamente ineficiente quando todos os símbolos estão na lista.
Explicação
fonte
JavaScript (Firefox 48 ou anterior), 103 bytes
fonte
Pitão - 13 bytes
Apenas verifica se alguma partição de entrada em minúsculas possui todas as partes na tabela periódica.
No celular, não foi possível configurar um conjunto de testes real, mas tente isso .
fonte
Pitão, 11 bytes
Experimente online. Suíte de teste.
Escrito no meu telefone, mas deve funcionar. Muito lento para um grande número de elementos ou uma cadeia longa.
Explicação
./
) da entrada (z
).S
) cada partição (M
).R
), veja se está em (}
) a lista de todos os subconjuntos (y
) daS
tabela periódica classificada ( ) fornecida como entrada (Q
).s
) a lista resultante de booleanos.fonte