กำหนดอินพุตของรายการคำและตัวย่อของเอาต์พุตเอาต์พุตรูปแบบที่สามารถสร้างตัวย่อได้
ขอให้เรานำตัวอย่างของ
potato ptao
puzzle pzze
เป็นตัวอย่าง (นั่นคือตัวย่อสำหรับpotatoคือptaoและตัวย่อสำหรับpuzzleคือpzze)
พิจารณาวิธีการที่เป็นไปได้ที่จะได้รับจากptao วิธีการหนึ่งที่เป็นไปได้คือการใช้ครั้งแรกสามสี่และหกตัวอักษรซึ่งเราจะเรียกว่าpotato
1346แต่เนื่องจากtและoปรากฏหลายครั้งในคำว่ามีหลายวิธีที่เป็นไปได้อื่น ๆ เพื่อสร้างptaoจากpotato: 1546, และ13421542
ในทำนองเดียวกันทราบว่าpzzeสามารถสร้างขึ้นจากpuzzleกับใด ๆ ของ1336,
1346, ,1436 1446รูปแบบเดียวที่ทั้งสองตัวย่อที่มีเหมือนกันคือ1346; ดังนั้นต้องเป็นเอาต์พุตสำหรับอินพุตนี้ หากเป็นไปได้หลายรูปแบบคุณอาจส่งออกรูปแบบใดรูปแบบหนึ่งหรือทั้งหมด (อย่างน้อยหนึ่งรูปแบบ)
คุณอาจคิดว่า:
คำที่ป้อนและตัวย่อมีตัวอักษรพิมพ์เล็กเท่านั้น
มีคู่ของคำ / ตัวย่ออย่างน้อยหนึ่งคู่ในอินพุต
มันเป็นไปได้สำหรับทุกตัวย่อที่จะเกิดขึ้นจากคำที่เกี่ยวข้อง
จะมีรูปแบบอย่างน้อยหนึ่งรูปแบบที่ใช้ตัวย่อทุกตัว
ความยาวสูงสุดของแต่ละคำคือ 9 ตัวอักษร
อินพุตอาจถูกใช้เป็นอย่างใดอย่างหนึ่งต่อไปนี้:
อาร์เรย์ 2 มิติ / รายการ / อาร์เรย์ของ tuples / etc
[[word, abbr], [word, abbr], ...]อาร์เรย์ / รายการแบบแบน 1 มิติ
[word, abbr, word, abbr, ...]สตริงเดี่ยวคั่นด้วยอักขระตัวเดียวที่ไม่ใช่ตัวอักษรตัวพิมพ์เล็ก
"word abbr word abbr"hash / associative array / ฯลฯ
{word => abbr, word => abbr, ...}
ในตัวเลือกการป้อนข้อมูลเหล่านี้คุณได้รับอนุญาตให้สลับลำดับของคำ / abbr (โปรดอธิบายรูปแบบการป้อนข้อมูลในโพสต์ของคุณทั้งหมด)
เอาต์พุตอาจถูกกำหนดเป็นตัวเลขเดี่ยวสตริงที่คั่นด้วยไม่ใช่ตัวเลขหรืออาร์เรย์ / list / tuple / etc ของตัวเลข
เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
กรณีทดสอบ (จำไว้ว่าคุณจะต้องส่งออกผลลัพธ์≥1หากมีหลายรูปแบบ):
In Out
--------------------------------------------------------
potato ptao puzzle pzze | 1346
aabbcc abc fddeef def | 246
prgrmming prgmg puzzles pzzlz | 14353
aaaaa a bbbb b ccc c dd d e e | 1
aaaaa a bbbb b ccc c | 1, 2, 3
abcxyz zbcyax | 623514
abcxyz acbbacbcbacbbac | 132213232132213
potato ptao | 1346, 1546, 1342, 1542
a aaaaa | 11111