3
การคำนวณสตริงย่อยทั่วไปที่ยาวที่สุดของสองสตริงโดยใช้อาร์เรย์ต่อท้าย
หลังจากที่ฉันเรียนรู้วิธีสร้างอาร์เรย์ต่อท้ายในความซับซ้อนฉันสนใจที่จะค้นหาแอปพลิเคชันของอาร์เรย์ต่อท้าย หนึ่งในนั้นคือการหาย่อยทั่วไปที่ยาวที่สุดระหว่างสองสายในO ( N )เวลา ฉันพบบนอินเทอร์เน็ตอัลกอริทึมต่อไปนี้:O ( N)O(ยังไม่มีข้อความ)O(N)O ( N)O(ยังไม่มีข้อความ)O(N) รวมทั้งสองสายและBเป็นหนึ่งสายA BAAABBBBABAB คำนวณอาเรย์ต่อท้ายของBABAB คำนวณอาร์เรย์ (คำนำหน้าทั่วไปที่ยาวที่สุด)L CPLคPLCP คำตอบคือค่าที่ใหญ่ที่สุดL CP[ i ]LคP[ผม]LCP[i] ฉันพยายามที่จะใช้มัน แต่เนื่องจากรายละเอียดการใช้งานไม่ได้กล่าวไว้ (เช่นเมื่อทำการเชื่อมโยงสตริงฉันควรใส่อักขระพิเศษระหว่างพวกเขา ( ) หรือไม่) รหัสของฉันล้มเหลวในหลายกรณีทดสอบ มีคนอธิบายเพิ่มเติมเกี่ยวกับอัลกอริทึมนี้เพิ่มเติมหรือไม่คBAคBAcB ขอบคุณล่วงหน้า. หมายเหตุ:ฉันไม่รับประกันความถูกต้องของอัลกอริทึมนี้ ฉันพบมันในบล็อกและฉันไม่แน่ใจว่ามันใช้งานได้ หากคุณคิดว่ามันไม่ถูกต้องโปรดแนะนำอัลกอริทึมอื่น