พื้นหลัง
คำลินดอนเป็นสตริงที่ไม่ว่างเปล่าซึ่งเป็นอย่างเคร่งครัด lexicographically ขนาดเล็กกว่าทุกหมุนเวียนอื่น ๆ มันเป็นไปได้ที่จะแยกแยะสตริงใด ๆ ที่ไม่ซ้ำกันในขณะที่การเรียงคำของลินดอนเช่นว่าคำย่อยเหล่านี้ไม่ได้เพิ่มคำในพจนานุกรม ความท้าทายของคุณคือทำสิ่งนี้ให้รัดกุมที่สุด
รายละเอียด
คุณควรใช้ฟังก์ชั่นหรือโปรแกรมที่ระบุการแยกตัวประกอบคำของ Lyndon ของสตริง ASCII ที่พิมพ์ได้ตามลำดับเพื่อส่งออกสตริงย่อยผลลัพธ์เป็นอาร์เรย์หรือสตรีมบางชนิด ควรเปรียบเทียบอักขระด้วยจุดรหัสและอนุญาตวิธีการอินพุตและเอาต์พุตมาตรฐานทั้งหมด ตามปกติสำหรับcode-golfโปรแกรมที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
กรณีทดสอบ
'' []
'C' ['C']
'aaaaa' ['a', 'a', 'a', 'a', 'a']
'K| ' ['K|', ' ']
'abaca' ['abac', 'a']
'9_-$' ['9_', '-', '$']
'P&O(;' ['P', '&O(;']
'xhya{Wd$' ['x', 'hy', 'a{', 'Wd', '$']
'j`M?LO!!Y' ['j', '`', 'M', '?LO', '!!Y']
'!9!TZ' ['!9!TZ']
'vMMe' ['v', 'MMe']
'b5A9A9<5{0' ['b', '5A9A9<5{', '0']
ที่เกี่ยวข้อง
—
xnor
โปรดทราบว่านี่เทียบเท่ากับการแยกโดย
—
CalculatorFeline
<=ness (ฉันไม่รู้เลยว่าจะอธิบายสิ่งนี้ดีกว่า: |)
นี่เทียบเท่ากับการรับตัวอักษรตัวแรกและคำนำหน้าของตัวละครทั้งหมดที่ใหญ่กว่าซ้ำหรือไม่
—
xnor
@xnor No. 'abac' เป็นคำ Lyndon
—
user1502040
@ user1502040 ฉันเห็นแล้วว่าความสัมพันธ์เป็นสิ่งที่น่าสนใจ ฉันขอแนะนำให้เพิ่มกรณีทดสอบที่จับได้
—
xnor