เมื่อกำหนดแฟรกเมนต์สตริงให้ฉันต้องการค้นหาสตริงเดี่ยวสั้นที่สุดเท่าที่จะเป็นไปได้ ("เอาต์พุตสตริง") ที่มีแฟรกเมนต์ทั้งหมด แฟรกเมนต์สามารถทับซ้อนกันในสตริงเอาต์พุต
ตัวอย่าง:
สำหรับแฟรกเมนต์สตริง:
BCDA
AGF
ABC
สตริงเอาต์พุตต่อไปนี้มีแฟรกเมนต์ทั้งหมดและสร้างขึ้นโดยการต่อท้ายแบบไร้เดียงสา:
BCDAAGFABC
อย่างไรก็ตามสตริงเอาต์พุตนี้ดีกว่า (สั้นกว่า) เนื่องจากมีการซ้อนทับกัน:
ABCDAGF
^
ABC
^
BCDA
^
AGF
ฉันกำลังมองหาอัลกอริทึมสำหรับปัญหานี้ ไม่สำคัญอย่างยิ่งที่จะต้องค้นหาสตริงเอาต์พุตที่สั้นที่สุด แต่ยิ่งสั้นยิ่งดี ฉันกำลังมองหาอัลกอริทึมที่ดีกว่าแบบไร้เดียงสาที่ชัดเจนซึ่งจะลองต่อท้ายพีชคณิตของอินพุตทั้งหมดและลบการทับซ้อน (ซึ่งดูเหมือนจะเป็น NP-Complete)
ฉันเริ่มทำงานกับวิธีแก้ปัญหาและมันพิสูจน์ได้ว่าน่าสนใจมาก ฉันต้องการที่จะเห็นสิ่งที่คนอื่นอาจเกิดขึ้น ฉันจะเพิ่มความคืบหน้าในการทำงานกับคำถามนี้ในอีกสักครู่