Tienes un conjunto de fichas con los símbolos de la tabla periódica. Cada símbolo aparece una vez. Estás pensando en palabras, pero quieres saber si es posible o no.
El reto
Escriba un programa en su idioma favorito que incorpore una cadena como parámetro de entrada. Puede suponer que la entrada no es nula, no tiene espacios y consta de caracteres ASCII.
Su programa debe tomar esa cadena y generar un valor verdadero si esa palabra puede estar compuesta de símbolos de la tabla periódica de elementos, y un valor falso si la palabra no puede.
Para hacer este desafío más difícil, no puede usar un símbolo dos veces. Entonces, si usa Nitrógeno, N
no puede N
volver a usarlo en la misma palabra.
Reglas
Las lagunas estándar no están permitidas. Puede usar símbolos de los elementos 1-118 (Hidrógeno a Ununoctium). Puede encontrar una lista de todos los elementos aquí . Si lo desea, puede leer la lista de símbolos de un archivo o argumentos de entrada.
Casos de prueba:
Laos - true (LaOs)
Amputation - true (AmPuTaTiON)
Heinous - true (HeINoUS)
Hypothalamus - true (HYPoThAlAmUS)
Singapore - true (SiNGaPoRe)
Brainfuck - true (BRaInFUCK)
Candycane - false
Este es un desafío de código de golf, el código más corto gana.
ANTES DE CERRAR COMO DUPLICADO: Si bien esto puede parecer similar a este desafío , creo que es diferente porque no es 'Generar una lista de todas las palabras que son posibles de la tabla periódica', es 'Tomar información arbitraria y determinar si se puede hacer de la tabla periódica '
Respuestas:
05AB1E, 16 bytes
Explicado
Advertencia: extremadamente lento. Recomiendo probar en un subconjunto de elementos mucho más pequeño en el intérprete en línea.
Toma la lista de elementos como primer argumento.
Toma la palabra para probar como segundo argumento.
Devuelve 1 para verdadero y 0 para falso.
Pruébelo en línea en un pequeño subconjunto de elementos
fuente
Brachylog , 7 bytes
Llame con la lista de símbolos (todo en minúsculas) como Entrada y la palabra como Salida, por ejemplo
run_from_atom('spc~@l.', ["he":"n":"o":"li"], "Nohe").
.Advertencia: esto es extremadamente ineficaz cuando todos los símbolos están en la lista.
Explicación
fuente
JavaScript (Firefox 48 o anterior), 103 bytes
fuente
Pyth - 13 bytes
Simplemente verifica si alguna partición de entrada en minúscula tiene todas las partes en la tabla periódica.
En dispositivos móviles, no pude configurar un conjunto de pruebas real, pero intente esto .
fuente
Pyth, 11 bytes
Pruébalo en línea. Banco de pruebas.
Escrito en mi teléfono, pero debería funcionar. Muy lento para una gran cantidad de elementos o una cadena larga.
Explicación
./
) de la entrada (z
).S
) cada partición (M
).R
), vea si está en (}
) la lista de todos los subconjuntos (y
) de los ordenados (S
tabla periódica ) dada como entrada (Q
).s
) la lista resultante de booleanos.fuente