พิจารณารายการคำที่เรียงตามตัวอักษรต่อไปนี้:
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
คำทั้งหมดเริ่มต้นด้วยb
และ 5 bal
เริ่มต้นครั้งแรกกับ ถ้าเราแค่ดูที่ 2 คำแรก:
balderdash
ballet
เราสามารถเขียนแทน:
balderdash
+let
โดยที่' '
จะใช้โดยที่คำที่ใช้ร่วมกันอักขระนำหน้ากับคำก่อนหน้า; ยกเว้น'+'
อักขระที่ระบุอักขระสุดท้ายที่คำที่สองใช้คำนำหน้าร่วมกับคำก่อนหน้า
นี่คือการจัดเรียงของ'Trie'สร้างภาพ: ผู้ปกครองคือ ' bal
' และมี 2 ลูกหลาน: และ'derdash'
'let'
ด้วยรายการที่ยาวขึ้นเช่น:
balderdash
ballet
brooding
เราสามารถใช้อักขระไพพ์เพิ่มเติม'|'
เพื่อให้ชัดเจนยิ่งขึ้นเมื่อคำนำหน้าที่ใช้ร่วมกันสิ้นสุดลงดังต่อไปนี้:
balderdash
| +let
+rooding
และต้นไม้ที่เทียบเท่าจะมีรากของ'b'
การมีลูกสองคน: ทรีย่อยที่มีราก'al'
และและลูกสองคน'derdash'
และ'let'
; 'rooding'
และ
หากเราใช้กลยุทธ์นี้กับรายการดั้งเดิมของเรา
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
เราได้ผลลัพธ์ที่ดูเหมือน:
balderdash
| +let
| +oonfish
| | +ist
| +t
+rooding
+m
หากคำสองคำติดต่อกันในรายการไม่มีคำนำหน้าที่ใช้ร่วมกันจะไม่มีการแทนที่อักขระพิเศษ เช่นสำหรับรายการ:
broom
brood
crude
crumb
เราต้องการผลลัพธ์:
broom
+d
crude
+mb
อินพุต
คำในอินพุตจะประกอบด้วยตัวอักษรและตัวเลขเท่านั้น (ไม่มีช่องว่างหรือเครื่องหมายวรรคตอน) สิ่งนี้อาจอยู่ในรูปแบบของรายการสตริงสตริงเดี่ยวหรือแนวทางอื่นที่สมเหตุสมผลตราบใดที่คุณระบุรูปแบบที่คุณเลือก ไม่มีคำสองคำติดต่อกันจะเหมือนกัน รายการจะถูกจัดเรียงตามตัวอักษร
เอาท์พุต
เอาต์พุตของคุณสามารถมีช่องว่างต่อท้ายต่อบรรทัดหรือทั้งหมด แต่ไม่มีช่องว่างนำหน้า รายการของสตริงหรือที่คล้ายกันก็จะยอมรับได้
นี่คือรหัสกอล์ฟ ; รหัสที่สั้นที่สุดในแต่ละภาษาจะสงวนสิทธิ์ในการคุยโว มีข้อห้ามตามปกติต่อช่องโหว่
กรณีทดสอบ
Input:
apogee
apology
app
apple
applique
apply
apt
Output:
apogee
|+logy
+p
|+le
| +ique
| +y
+t
Input:
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
donald
donatella
donna
dont
dumb
Output:
balderdash
| +let
| +oonfish
| | +ist
| +t
+rooding
+m
donald
| |+tella
| +na
| +t
+umb
+
ภายใต้แรกo
แต่ฉันไม่ได้เขียนความท้าทายดังนั้นฉันไม่แน่ใจ
ball
balloon
เราควรคาดหวังผลลัพธ์ใดบ้าง