ปัญหาไม่น่าแปลกใจเลย ก่อนอื่นอัลกอริทึมกำลังสองเดรัจฉาน สี่เหลี่ยม ("รูปแบบซ้ำ ๆ ") ถูกกำหนดโดยความยาว และตำแหน่งและใช้เวลาในการตรวจสอบ ถ้าเราไปทั้งหมดและเราจะได้อัลกอริทึมเราสามารถปรับปรุงในครั้งแรกโดยที่วนลูปแล้วสแกนสตริงที่มีสองตัวชี้ทำงานที่ระยะห่างของ\ด้วยวิธีนี้เราสามารถตรวจสอบว่าตารางของความยาวอยู่ในเส้นเวลาให้รวมการทำงานของเวลา2)ℓpO(ℓ)ℓpO(n3)ℓℓ2ℓO(n2)
Kolpakov และ Kucherov พัฒนาอัลกอริทึมสำหรับการค้นหาทั้งหมดซ้ำสูงสุดในคำในเวลา [1] และขั้นตอนวิธีการของพวกเขาสามารถใช้ในการหาช่องสี่เหลี่ยมสูงสุดทั้งหมดในเวลา(n) ซ้ำเป็น subword ของแบบฟอร์มที่และเป็นคำนำหน้าที่เหมาะสมของWตารางที่ใหญ่ที่สุดที่มีอยู่ในการทำซ้ำที่เป็น 2 การใช้สูตรนี้เนื่องจากคำซ้ำสูงสุดทั้งหมดในคำ (ซึ่งมีเพียงจำนวนมาก) หนึ่งสามารถค้นหาสี่เหลี่ยมที่ใหญ่ที่สุดO(n)O(n)wkxk≥2xw(w⌊k/2⌋)2O(n)
[1] Kolpakov, R. , & Kucherov, G. (1999) หาซ้ำสูงสุดในคำในเวลาเชิงเส้น ในรากฐานของวิทยาศาสตร์คอมพิวเตอร์, 1999. การประชุมวิชาการประจำปีครั้งที่ 40 ใน (หน้า 596-604) IEEE
142857
นั่นก็ไม่นานที่สุดเพราะ142857142857
ยาวกว่า ฉันคิดว่าคุณควรแก้ไขคำถามเพื่ออธิบายความหมายของคำว่า“ รูปแบบซ้ำ ๆ ”