พิจารณาสตริงต่อไปนี้:
Tin Snips
สายนี้มีสัญลักษณ์อะตอมหลายในตารางธาตุ เราสามารถเขียนข้อความนี้อีกครั้งเพื่อระบุหลาย ๆ ข้อความ
[Ti][N] [Sn][I][P][S]
แน่นอนเราสามารถเขียนได้ด้วยวิธีนี้:
T[In] [S][Ni][P][S]
กฎสำหรับการเขียนอินพุตใหม่มีดังนี้:
- กรณีของการป้อนข้อมูลไม่สำคัญในแง่ของการจับคู่สัญลักษณ์อะตอม
- หากมีการใช้องค์ประกอบในสัญลักษณ์อะตอมกรณีของมันจะต้องเปลี่ยนเพื่อให้สัญลักษณ์นั้นถูกต้อง Ex: จะกลายเป็น
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, ที่, Rn, Fr, Ra, Ac, Th, Pa, U, Np, Pu, Am, Cm, Bk, Cf, Es, Fm, Md, ไม่, Lr, Rf, Db, Sg, Bh, Hs, Mt, Ds, Rg, Cn, Nh, Fl, Mc, Lv, Ts, Og
เขียนโปรแกรมหรือฟังก์ชั่นที่สร้างผลลัพธ์ที่เป็นไปได้ทั้งหมดจากอินพุตที่จัดเตรียมไว้ให้เดียว ทั้งอินพุตและเอาต์พุตอาจอยู่ในรูปแบบที่คุณเลือก นี่อาจเป็นสตริงชุดอักขระหรือโครงสร้างข้อมูลอื่น ๆ : อะไรก็ได้ที่สะดวกและชัดเจนแสดงถึงอินพุตและเอาต์พุต ทั้งอินพุทและเอาท์พุทอาจถูกส่งผ่านเข้า / ออกของรหัสของคุณอย่างไรก็ตามคุณเลือก: มาตรฐานเข้า / ออก, ฟังก์ชั่นอาร์กิวเมนต์ / ผลตอบแทนหรืออย่างอื่น
- การป้อนข้อมูลจะต้องเป็นสตริง (ดูย่อหน้าก่อนหน้า) ที่มีความยาวเป็นบวกที่มีเฉพาะอักขระ ASCII ของตัวพิมพ์เล็กและตัวเว้นวรรค (
0x20
) - รหัสของคุณต้องสร้างสตริงเอาต์พุตทั้งหมดที่สามารถสร้างได้โดยใช้กฎอินพุตข้างต้น
- ลำดับของเอาต์พุตคือการกำหนดการนำไปปฏิบัติ ข้อกำหนดเพียงอย่างเดียวคือสตริงเอาต์พุตทั้งหมดมีอยู่
- หากแสดงด้วยสตริงอินพุตที่ถูกต้องซึ่งไม่มีสัญลักษณ์อะตอมมิกใด ๆ ให้แสดงเอาต์พุตสตริงอินพุต
- หากนำเสนอด้วยสตริงอินพุตที่ไม่ถูกต้องตามกฎข้างต้น (null, อักขระศูนย์, มีอักขระผิดกฎหมาย ฯลฯ ) โปรแกรมของคุณอาจทำสิ่งใดก็ได้ (ขัดข้อง, เอาต์พุตว่าง ฯลฯ )
- ผลลัพธ์ไม่ตรงตามตัวพิมพ์ใหญ่ - เล็กที่ไม่ใช่สัญลักษณ์อะตอมมิกที่ต้องการให้ตรงกับตารางธาตุ
- ไม่อนุญาตช่องโหว่มาตรฐาน
กรณีทดสอบ:
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) คือ: เราเพียงแค่ต้องให้ 1 เท่านั้นเอาท์พุทที่จำนวนสูงสุดองค์ประกอบย่อยขององค์ประกอบ? 2. จำนวนการสูญเสียขั้นต่ำเท่านั้น? (HeHe with hydrogens ระบุว่าคำตอบสำหรับคำถามนี้ไม่มี) 3. เอาท์พุททั้งหมดที่ตรงกับการแข่งขันหมด? (ในกรณีนี้T[I][N]
เช่นเดียวกับT[In]
จะใช้ได้) ฉันคิดว่าการตีความที่ถูกต้องคือ 3