Considere la siguiente cadena:
Tin Snips
Esta cadena contiene varios símbolos atómicos en la tabla periódica . Podríamos reescribir esta cadena para identificar varios de ellos:
[Ti][N] [Sn][I][P][S]
Por supuesto, también podríamos escribirlo de esta manera:
T[In] [S][Ni][P][S]
Las reglas para reescribir la entrada son las siguientes:
- El caso de la entrada no importa en términos de símbolos atómicos coincidentes.
- Si se utiliza un elemento en un símbolo atómico, su caso debe cambiar para que el símbolo sea correcto. Ej:
h
se convertiría[H]
. - Todos los símbolos de elementos están encerrados entre corchetes ASCII,
[
y]
. - Se conserva el espacio en blanco:
Big ego
no se puede combinar la "g" y la "e" en[Ge]
. - No todos los caracteres de entrada deben combinarse en un símbolo atómico: si un carácter de entrada no se coloca en un símbolo, se pasa como está (el caso no importa).
- Si se puede hacer un símbolo, se debe hacer. En otras palabras, no se permite la salida
Tin
en el ejemplo anterior porque es posible crear al menos un símbolo en esa palabra. La única vez que un personaje puede pasar sin usar es cuando no se puede usar para construir un símbolo atómico. - Para los propósitos de este desafío, todos los elementos desde Hidrógeno (1) hasta Oganesson (118) son válidos. No hay elementos superiores válidos.
- Algunos de los elementos superiores tienen nombres y símbolos ambiguos: a los fines de este desafío, se utilizará la versión de Wikipedia . Por conveniencia, los símbolos atómicos permitidos están aquí: H, He, Li, Be, B, C, N, O, F, Ne, Na, Mg, Al, Si, P, S, Cl, Ar, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Ga, Ge, As, Se, Br, Kr, Rb, Sr, Y, Zr, Nb, Mo, Tc, Ru, Rh, Pd, Ag, Cd, In, Sn, Sb, Te, I, Xe, Cs, Ba, La, Ce, Pr, Nd, Pm, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Tl, Pb, Bi, Po, At, Rn, Fr, Ra, Ac, Th, Pa, U, Np, Pu, Am, Cm, Bk, Cf, Es, Fm, Md, No, Lr, Rf, Db, Sg, Bh, Hs, Mt, Ds, Rg, Cn, Nh, Fl, Mc, Lv, Ts, Og.
Escriba un programa o función que genere todas las salidas posibles a partir de una sola entrada proporcionada. Tanto la entrada como la salida pueden estar en cualquier forma que elija. Esto podría ser una cadena, una matriz de caracteres o alguna otra estructura de datos: lo que sea conveniente y represente claramente la entrada y la salida. Tanto la entrada como la salida se pueden pasar dentro / fuera de su código como usted elija: entrada / salida estándar, argumento / retorno de función, o algo más.
- La entrada debe ser una cadena (ver párrafo anterior) de longitud positiva que contenga solo caracteres ASCII de mayúsculas y minúsculas y el espacio (
0x20
). - Su código debe generar todas las cadenas de salida que se pueden crear utilizando las reglas de entrada anteriores.
- El orden de la salida está definido por la implementación. El único requisito es que todas las cadenas de salida estén presentes.
- Si se le presenta una cadena de entrada válida que no contiene ningún símbolo atómico, simplemente envíe la cadena de entrada.
- Si se le presenta una cadena de entrada que no es válida según las reglas anteriores (nulo, cero caracteres, contiene caracteres ilegales, etc.), su programa puede hacer cualquier cosa (bloqueo, salida en blanco, etc.)
- La salida no distingue entre mayúsculas y minúsculas, excepto los símbolos atómicos que necesitan coincidir con la tabla periódica.
- Lagunas estándar no permitidas.
Casos de prueba:
Tin Snips
[Ti][N] [Sn][I][P][S]
[Ti][N] [S][Ni][P][S]
[Ti][N] [S][N][I][P][S]
T[In] [Sn][I][P][S]
T[In] [S][Ni][P][S]
T[In] [S][N][I][P][S]
T[I][N] ...
Quack
Q[U][Ac][K]
Q[U]a[C][K]
hehe
[H]e[H]e
[H]e[He]
[He][H]e
[He][He]
Stack Exchange
[S][Ta][C][K] Ex[C][H]a[N][Ge]
[S]t[Ac][K] Ex[C][H]a[N][Ge]
Este es el código de golf, ¡así que déjame ver tu código más corto!
Q[U][Ac][K]
y Q[U]a[C][K]
. ¿Derecha?
T[I][N]
no[T][I][N]
porque T no es un elemento. Mi pregunta (y posiblemente la de Rassar) es: ¿solo tenemos que dar 1. Solo salidas donde se realiza el número máximo de suscripciones de elementos? 2. ¿Solo la cantidad mínima de desperdicio? (El HeHe con hidrógenos indica que la respuesta a esta pregunta es no) 3. ¿Todas las salidas donde las coincidencias están completamente agotadas? (en este casoT[I][N]
, así comoT[In]
sería válido). Creo que la interpretación correcta es 3.