다음 문자열을 고려하십시오.
Tin Snips
이 문자열은 주기율표 에 여러 개의 원자 기호를 포함 합니다 . 이 문자열을 다시 작성하여 몇 가지를 식별 할 수 있습니다.
[Ti][N] [Sn][I][P][S]
물론 다음과 같이 작성할 수도 있습니다.
T[In] [S][Ni][P][S]
입력을 다시 쓰는 규칙은 다음과 같습니다.
- 원자 기호 일치와 관련하여 입력의 경우는 중요하지 않습니다.
- 원자 기호에 요소를 사용하는 경우 기호가 정확하도록 대소 문자를 변경해야합니다. 예 :
h
될 것[H]
입니다. - 모든 원소 기호는 ASCII 대괄호로 쌌다있다
[
및]
. - 공백은 유지됩니다.
Big ego
"g"와 "e"를로 결합 할 수 없습니다[Ge]
. - 모든 입력 문자를 원자 기호로 결합 할 필요는 없습니다. 입력 문자를 기호에 넣지 않으면 그대로 전달됩니다 (대소 문자는 중요하지 않음).
- 기호를 만들 수 있으면 만들어야 합니다. 즉,
Tin
위의 예에서는 해당 단어에 하나 이상의 기호를 만들 수 있으므로 출력 할 수 없습니다 . 문자가 미사용을 통과 할 수있는 유일한 시간은 원자 기호를 구성하는 데 사용될 수없는 경우입니다. - 이 도전의 목적을 위해, 수소 (1)에서 오가네 손 (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
) 문자 만 포함하는 양의 길이의 문자열 (이전 단락 참조)이어야합니다 . - 코드는 위의 입력 규칙을 사용하여 만들 수있는 모든 출력 문자열을 생성해야합니다.
- 출력 순서는 구현 정의입니다. 유일한 요구 사항은 모든 출력 문자열 이 있어야한다는 것 입니다.
- 원자 기호를 포함하지 않는 유효한 입력 문자열이 표시되면 입력 문자열을 출력하십시오.
- 위의 규칙에 따라 유효하지 않은 입력 문자열 (널 (NULL), 0 자, 불법 문자 포함 등)이 제공되는 경우 프로그램은 어떤 작업 (충돌, 공백 출력 등)을 수행 할 수 있습니다.
- 주기율표와 일치해야하는 원자 기호 이외의 결과는 대소 문자를 구분하지 않습니다.
- 표준 허점은 허용되지 않습니다.
테스트 사례 :
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]
이것은 코드 골프이므로 가장 짧은 코드를 보도록하겠습니다!
Q[U][Ac][K]
및 Q[U]a[C][K]
. 권리?
T[I][N]
수 없습니다[T][I][N]
T가 요소가 아니기 때문에. 내 질문 (그리고 아마도 Rassar 's)은 다음과 같습니다. 우리는 단지 1을 주어야합니다. 최대 수의 원소 대체가 이루어지는 출력 만? 2. 최소한의 낭비 만? (수소가있는 HeHe는 이것에 대한 답이 '아니오'임을 나타냄) 3. 경기가 완전히 소진 된 모든 출력? (이 경우T[I][N]
에도T[In]
유효 할 것입니다.) 정확한 해석은 3이라고 생각합니다.