यदि आप प्रत्येक वर्णमाला और किनारे के रूप में वर्टेक्स के निर्देशित ग्राफ का प्रतिनिधित्व करने के लिए 26X26 मैट्रिक्स बनाते हैं। उदाहरण के लिए शब्द - APPLE कनेक्ट A से E तक निर्देशित किनारे के साथ A और E को कनेक्ट करें। अब समस्या सबसे बड़े Eulerian ट्रेल (पथ जिसमें किनारों की अधिकतम संख्या शामिल है, को खोजने के लिए कम करती है) ग्राफ़ में एक बार पुनरावृत्ति को संभव बनाते हुए)। O (E) एल्गोरिथ्म में से एक बेतरतीब ढंग से एक जोड़ी से शुरू करना होगा। उनके बीच का रास्ता खोजें। जब तक संभव न हो, तब तक आराम करते रहें।
अद्यतन
@ GlenH7 मैंने हाल ही में www.hackerearth / jda पर एक समान प्रश्न हल किया, सर्वश्रेष्ठ समाधान के संबंध में सापेक्ष अंक थे और मैंने निम्नलिखित अंकों के साथ उच्चतम अंक बनाए-
शब्दों की सूची दी। सबसे लंबी श्रृंखला खोजें जो उनके द्वारा बनाई जा सकती है। एक श्रृंखला वैध है यदि हर शब्द एक अक्षर से शुरू होता है * अंतिम शब्द के अंत में समाप्त होता है।
दृष्टिकोण =
1) अक्षरों और किनारों के रूप में अक्षर का ग्राफ बनाते हैं। कई किनारों का उपयोग करने के स्थान पर किनारों की संख्या के बराबर वजन के साथ एक का उपयोग करें।
2) अधिकतम किनारों के साथ ग्राफ के दृढ़ता से जुड़े घटक को खोजें। अस्थायी रूप से अन्य किनारों को त्यागें।
3) प्रत्येक शीर्ष के लिए अपनी जागीर को उसकी रूपरेखा के बराबर बनाते हैं।
4) अब ग्राफ में उनके यूलरियन सर्किट मौजूद हैं। इसे खोजें।
5) अब बचे हुए ग्राफ (wrt orignal graph में सबसे लंबे निशान के साथ सबसे पहले चुने गए मजबूती से जुड़े घटक को ढूंढते हैं। मुझे लगता है कि यह NP कठिन है।
6) एलरियन सर्किट में उपरोक्त निशान को शामिल करें यूलरियन सर्किट को ट्रेल में परिवर्तित करना।
क्यों - मैं स्वीकार करता हूं कि यह सवाल शायद एनपी कठिन है (अनुमान, गणितीय रूप से नहीं)। लेकिन उपरोक्त दृष्टिकोण सबसे अच्छा काम करता है जब समान रूप से वितरित शब्दों की एक लंबी सूची (1000+) होती है (यानी दृष्टिकोण के लिए wc होने का इरादा नहीं)। आइए मान लें कि दी गई सूची को ऊपर बताए गए ग्राफ में परिवर्तित करने के बाद, यह सौभाग्य से एक यूलरियन ग्राफ बन जाता है (देखें http://en.wikipedia.org/wiki/Eulerian_path शर्तों के लिए), फिर बिना किसी संदेह के हम यह कह सकते हैं कि उत्तर उपरोक्त प्रश्न P है और वास्तव में ग्राफ़ में यूलरियन पथ है ( ऐसा करने के लिए एक बहुत ही सरल दृष्टिकोण के लिए http://www.graph-magics.com/articles/euler.php देखें ( यह देखें कि आपके ग्राफ़ में यह सत्यापित करने के लिए है) एकल http://www.geeksforgeeks.org/strongly-connected-compenders/और यदि अस्थायी रूप से अन्य छोटे एससीसी को साफ न करें, क्योंकि एकल एससीसी के लिए यूलरियन पथ मौजूद है)। इस प्रकार भाग्यशाली मामलों के लिए (जो लगभग सभी मामले हैं) मैं उन्हें भाग्यशाली मामलों में बदलने की कोशिश करता हूं (यानी यूलरियन ट्रेल की स्थिति पूरी होती है)। यह कैसे करना है? मैंने अप्रासंगिक किनारों के लिए गहराई से खोज करने की कोशिश की (एक मार्ग में किनारों का सेट, जो कि शीर्ष से अधिक मंदक के साथ घनीभूत से अधिक था और शिखर पर चरम से अधिक के साथ समाप्त होता है)। गहराई से खोज बढ़ाने का मतलब है कि पहले मैंने रास्ते में एक किनारे के ऐसे सभी सेट की खोज की, जो कि दो किनारों की तुलना में पथ पर था। यह पहली बार में लग सकता है कि ith गहराई खोज O (नोड्स ^ i) लेगी, इस प्रकार O की कुल समय जटिलता (नोड्स + नोड्स ^ 2 + नोड्स ^ 3 + ....) जब तक यह एक भाग्यशाली मामला नहीं है। लेकिन परिशोधित विश्लेषण यह ओ (किनारों) होगा। एक बार जब यह कम हो जाता है तो भाग्यशाली मामला यूलरियन सर्किट का पता चलता है।
यहाँ तक यह सभी बहुपद समय था। यह लगभग सबसे अच्छा समाधान देगा। लेकिन अपने समाधान को और बढ़ाने के लिए (सही समाधान एनपी कठिन है) चुने हुए सीसी में एक कोने के साथ एक लंबे निशान को खोजने के लिए शेष ग्राफ में कुछ लालची दृष्टिकोण की कोशिश करें। अब इसे ऊपर पाए गए यूलरियन ट्रेल में जोड़ें ताकि इसे और बढ़ाया जा सके।