3
[Br]追求Code Golf [Ba] d
考虑以下字符串: Tin Snips 该字符串在元素周期表中包含几个原子符号。我们可以重写此字符串以标识其中几个: [Ti][N] [Sn][I][P][S] 当然,我们也可以这样写: T[In] [S][Ni][P][S] 重写输入的规则如下: 输入的大小写与匹配原子符号无关紧要。 如果在原子符号中使用元素,则其大小写必须更改,以便该符号正确。例如:h将变为[H]。 所有元素符号都用ASCII方括号[和括起来]。 保留空白:Big ego无法将“ g”和“ e”合并为[Ge]。 并非所有输入字符都需要组合成一个原子符号:如果没有将输入字符放入符号中,则会按原样传递(大小写无关紧要)。 如果可以制作符号,则必须制作。换句话说,Tin在上面的示例中不允许输出,因为可以在该单词中创建至少一个符号。字符只能通过未使用的唯一时间是无法用于构造原子符号。 出于此挑战的目的,从氢(1)到Oganesson(118)的所有元素都是有效的。没有更高的元素有效。 某些高级元素的名称和符号含糊不清:出于挑战的目的,应使用Wikipedia的版本。为方便起见,此处允许的原子符号为: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。 编写一个程序或函数,以从单个提供的输入生成所有可能的输出。输入和输出都可以采用您选择的任何形式。它可以是字符串,字符数组或其他某种数据结构:无论是方便还是清楚地表示输入和输出。输入和输出都可以传入/传出代码,但是您可以选择:标准输入/出,函数参数/返回或其他。 输入应为正长度的字符串(请参见上一段),仅包含任意大小写的ASCII字符和空格(0x20)字符。 您的代码必须生成可以使用上述输入规则创建的所有输出字符串。 输出的顺序是实现定义的。唯一的要求是所有输出字符串都存在。 如果提供的有效输入字符串不包含任何原子符号,则只需输出输入字符串即可。 如果显示的输入字符串不符合上述规则(空,零字符,包含非法字符等),则您的程序可能会执行任何操作(崩溃,空白输出等) 输出是不区分大小写的,除了原子符号需要匹配元素周期表。 不允许出现标准漏洞。 测试用例: 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] ... …