คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดรายการบล็อกเตตริสเป็นเอาท์พุทอินพุตหรือคืนช่องว่างที่ใหญ่ที่สุดระหว่างสองจุดในระดับความสูงเดียวกันซึ่งชิ้นส่วนสามารถเชื่อมต่อได้
ชิ้นเตตริส 7 ประเภทดังต่อไปนี้:
เราจะอ้างถึงชิ้นส่วนเหล่านี้ด้วยตัวอักษร I, J, L, O, S, T และ Z ตามลำดับโดยอ้างอิงถึงรูปร่างของพวกเขา คุณสามารถหมุนชิ้นส่วนได้ แต่ไม่สามารถสะท้อนได้เหมือนในเกม Tetris
งานของเราคือการสร้างพื้นที่เชื่อมต่อ orthogonally (ด้านที่เชื่อมต่อกับด้านข้าง) จากชิ้นส่วนที่กำหนด พื้นที่นี้ควรเชื่อมต่อ (เป็นมุมฉาก) สองหน่วยสี่เหลี่ยมซึ่งมีความสูงเท่ากัน เราควรหาช่องว่างที่ใหญ่ที่สุดที่เป็นไปได้ระหว่างสองช่องที่เราสามารถเชื่อมได้
ตัวอย่างรายละเอียด
ด้วยชิ้น L เราสามารถเชื่อมต่อช่องว่าง 3
L
XLLLX
ด้วยชิ้นส่วน S เราสามารถเชื่อมต่อช่องว่าง 2
SS
XSSX
ด้วยชิ้นส่วน S, S, O เราสามารถเชื่อมต่อช่องว่าง 7 (โปรดทราบว่าเราไม่สามารถเชื่อมต่อช่องว่าง 8)
S
XSSOO SSX
SOOSS
อินพุต
- สตริงที่แสดงถึงชิ้นส่วนที่มีอยู่ซึ่งประกอบด้วยเฉพาะตัวอักษรตัวพิมพ์ใหญ่ I, J, L, O, S, T และ Z ตัวอักษรทุกตัวแสดงถึงชิ้นส่วน tetris ที่สมบูรณ์
- ตัวอักษรจะเรียงตามตัวอักษรในสตริง
- สตริงจะมีความยาวอย่างน้อยหนึ่งตัว
เอาท์พุต
- จำนวนเต็มบวกเดียวช่องว่างที่ใหญ่ที่สุดสามารถเชื่อมต่อกับชิ้นส่วนที่กำหนดได้
ตัวอย่าง
อินพุต => เอาท์พุท
OSS => 7
LS => 5
LZ => 6
ZZZZ => 10
LLSSS => 14
IIJSSSTTZ => 28
IISSSSSS => 24
OOOSSSSSSSSSSSSTT => 45
IJLOSTZ => 21
IJLOSTZZZZZZZ => 37
IIJLLLOSTT => 31
IJJJOOSSSTTZ => 35
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ