एक स्ट्रिंग को देखते हुए , मैं सबसे लंबे समय तक दोहराए जाने (कम से कम दो बार) बाद में खोजना चाहूंगा। है कि, मैं एक स्ट्रिंग प्राप्त करना चाहते हैं जो किसी परिणाम है की (एक आस पास होने की जरूरत नहीं है) ऐसी है कि डब्ल्यू डब्ल्यू '\ सी-डॉट डब्ल्यू' = । यही है, w एक स्ट्रिंग है जिसकी संख्या पंक्ति में दो बार दिखाई देती है। ध्यान दें कि डब्ल्यू की किसी परिणाम है रों जरूरी सबस्ट्रिंग, लेकिन नहीं।
उदाहरण:
'Ababccabdc' के लिए यह 'abcabc' होगा, क्योंकि 'abcccabdc' में 'abc' = 'abc' और 'abc' कम से कम दो बार दिखाई देते हैं।
'Addbacddabcd' के लिए एक विकल्प 'dddd' है, क्योंकि 'dd' दो बार दिखाई देता है (मैं एक ही अक्षर का कई बार उपयोग नहीं कर सकता, लेकिन यहाँ मेरे पास 4 'd's so ok' है), लेकिन इसका शब्दांश 4. मैं एक बेहतर खोज सकता हूँ। लंबाई 8: 'abcdabcd', क्योंकि 'abcd' 'addbacddabcd' का एक विकल्प है जो दो बार दिखाई देता है।
मैं सबसे लंबे समय तक दोहराव खोजने में रुचि रखता हूं। इसे "सबसे लंबा / सबसे बड़ा वर्ग ढूंढना" भी कहा जाता है, लेकिन मैंने कई लेख पढ़े हैं जिसमें एक वर्ग को एक विकल्प के लिए परिभाषित किया गया है और बाद के लिए नहीं।
मैं आसानी से एक क्रूर बल एल्गोरिथ्म का उपयोग कर सकता हूं जो स्ट्रिंग में एक ब्रेकपॉइंट के लिए सभी विकल्पों पर पुनरावृत्ति करके ओ (एन ^ 3) ले जाएगा , और फिर मेरे पास दो तार होंगे जिसमें मैं सबसे बड़ा / सबसे लंबा सामान्य बाद की तलाश करूंगा, लेकिन प्रत्येक चेक एक गतिशील प्रोग्रामिंग तकनीक का उपयोग करके लेगा, इसलिए पूरा समय । मुझे सबसे लंबे समय तक चलने वाली सामान्य अनुक्रिया के लिए एक अधिक कुशल एल्गोरिथ्म मिला जो O (\ frac {n ^ 2} {\ log n}) लेता है , इसलिए चलने का समय ।
मैं सबसे लंबे समय तक दोहराव की समस्या के लिए अधिक कुशल एल्गोरिथ्म की तलाश कर रहा हूं। शायद सभी विराम बिंदुओं पर पुनरावृत्ति करने का मेरा विचार बहुत अधिक समय बर्बाद करता है, और कम पुनरावृत्तियों को कम किया जा सकता है। या शायद एक अलग दृष्टिकोण के साथ एक एल्गोरिथ्म इस समस्या को हल कर सकता है।
मैंने कई पत्रिकाओं और पिछले प्रश्नों में खोज की है, और मैंने जो परिणाम प्राप्त किए हैं उनमें से अधिकांश एक विकल्प के बारे में थे और एक बाद के बारे में नहीं।
मैंने यह भी पढ़ा है कि यह प्रत्यय पेड़ों का उपयोग करके किया जा सकता है, लेकिन यह भी सबस्ट्रिंग के लिए प्रासंगिक था और मुझे यकीन नहीं है कि इस तरह के विचार को बाद के लिए बढ़ाया जा सकता है।
मैं एक समाधान की तलाश में हूं जो समय में चलता है । यदि कोई समय जो और भी बेहतर होगा (मुझे यकीन नहीं है कि ऐसा मौजूद है)।
$
, LCS समस्या को हल करना।