พิจารณาว่าคำสามารถจัดบนขนาดใหญ่โดยพลเกรงกลัวตารางถ้ากฎเกี่ยวกับการไม่ได้ใช้ก้อนตัวอักษรเดียวกันมากกว่าหนึ่งครั้งจะถูกละเว้น นอกจากนี้สมมติว่าคุณมีได้ไม่ จำกัด จำนวนของก้อนตัวอักษร (ที่มีตัวอักษรทั้งหมดในปัจจุบัน) และเป็นเพียงQu
Q
MISSISSIPPI
สามารถจัดเรียงคำได้โดยใช้เพียง 6 ลูก นี่เป็นข้อตกลงที่เป็นไปได้หนึ่งข้อ:
S
MIS
PP
เริ่มต้นที่M
เราทำซ้ำขั้นตอนใด ๆ ในแนวนอนแนวตั้งหรือแนวทแยงมุมจนกว่าจะสะกดคำทั้งหมด
น่าแปลกที่วลีที่ยาวขึ้นเช่นAMANAPLANACANALPANAMA
เดียวกับต้องการเพียง 6 ลูกบาศก์:
MAN
PLC
อย่างไรก็ตามจำนวนคิวบ์ต่ำสุดที่จำเป็นสำหรับการยาวขึ้นสตริงที่ซับซ้อนมากขึ้นไม่ชัดเจนเสมอไป
ท้าทาย
จงเขียนโปรแกรมที่ใช้ในสตริงและจัดไว้ในนี้เกรงกลัวเหมือนแฟชั่นดังกล่าวว่าจำนวนขั้นต่ำของก้อนจะใช้ (ขนาดของตารางผลลัพธ์และจำนวนของเซลล์ว่างเปล่าไม่เกี่ยวข้อง)
สมมติว่าคุณมีลูกบาศก์ไม่ จำกัด จำนวนสำหรับอักขระ ASCII ที่พิมพ์ได้แต่ละตัวยกเว้นเว้นวรรค (รหัสฐานสิบหก 21 ถึง 7E) เนื่องจากมันถูกใช้เป็นเซลล์กริดว่างเปล่า จะป้อนเฉพาะสตริง ASCII ที่พิมพ์ได้ (ไม่มีช่องว่าง)
อินพุตควรถูกนำมาจาก stdin หรือบรรทัดรับคำสั่ง ผลลัพธ์ควรไปที่ stdout (หรือตัวเลือกอื่นที่ใกล้เคียงที่สุด)
การขึ้นบรรทัดใหม่หรือการต่อท้ายช่องว่างในผลลัพธ์เป็นสิ่งที่ดี (แต่หวังว่าจะไม่มีจำนวนเกินจริง)
พื้นที่การค้นหาจะเพิ่มขึ้นอย่างทวีคูณเมื่อสตริงยาวขึ้น แต่คุณไม่จำเป็นต้องพยายามทำให้อัลกอริทึมของคุณมีประสิทธิภาพ (แม้ว่าจะดี :) นี่คือโค้ดกอล์ฟดังนั้นทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ
ตัวอย่าง
หากอินพุตมีOklahoma!
(อย่างน้อย 8 ตัวอักษร) สิ่งเหล่านี้จะเป็นผลลัพธ์ที่ถูกต้องเพราะทั้งหมดมีเซลล์กริดที่เต็มไปทั้งหมด 8 ตัวและพวกเขาทำตามรูปแบบการอ่านที่ผิดพลาด (แก้ไข):
Oklaho
!m
หรือ
!
Oamo
klh
หรือ
lkO
!amo
h
เป็นต้น