उदाहरण के लिए "ccddcc" स्ट्रिंग में "abaccddccefe"
मैंने एक समाधान के बारे में सोचा लेकिन यह O (n ^ 2) समय में चलता है
एल्गो 1:
चरण: इसकी एक क्रूर बल विधि है
- 2 के लिए छोरों के
लिए i = 1 से i
सरणी से कम है। - इस तरह आप ऐरे से हर संभव संयोजन का विकल्प प्राप्त कर सकते हैं
- एक palindrome फ़ंक्शन होता है जो जाँचता है कि क्या एक स्ट्रिंग palindrome है
- इसलिए प्रत्येक प्रतिस्थापन के लिए (i, j) इस फ़ंक्शन को कॉल करें, यदि यह एक पैलिंड्रोम स्टोर है जो इसे स्ट्रिंग चर में संग्रहीत करता है
- यदि आपको अगला पेलिंड्रोम प्रतिस्थापन लगता है और यदि यह वर्तमान से अधिक है, तो इसे वर्तमान के साथ बदलें।
- अंत में आपके स्ट्रिंग चर का जवाब होगा
मुद्दे: 1. यह algo O (n ^ 2) समय में चलता है।
एल्गो 2:
- स्ट्रिंग को उल्टा करें और इसे अलग-अलग सरणी में संग्रहीत करें
- अब दोनों सरणी के बीच सबसे बड़ा मिलान विकल्प खोजें
- लेकिन यह भी O (n ^ 2) समय में चलता है
क्या आप लोग एक ऐसे अहंकार के बारे में सोच सकते हैं जो बेहतर समय में चलता है। यदि संभव हो तो O (n) समय
O(n^2)
सबस्टैंडिंग प्राप्त करने के लिए *O(n)
यह जाँचने के लिए कि क्या वे कुल मिलाकर हैंO(n^3)
?