Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

सबसे लंबा पैलिंड्रोमिक परिणाम


सबसे लंबा पैलिंड्रोमिक क्रम किसी दिए गए अनुक्रम का अनुवर्ती होता है, और उसके बाद का पलिंड्रोम होता है।

इस समस्या में, वर्णों का एक क्रम दिया गया है, हमें पैलिंड्रोमिक अनुक्रम की सबसे लंबी लंबाई ज्ञात करनी है।

इस समस्या को हल करने के लिए, हम पुनरावर्ती सूत्र का उपयोग कर सकते हैं,

यदि L (0, n-1) का उपयोग सबसे लंबे पैलिंड्रोमिक अनुक्रम की लंबाई को संग्रहीत करने के लिए किया जाता है, तो
L (0, n-1) :=L (1, n-2) + 2 (जब 0'वें और (n-1)वें वर्ण समान हों)।

इनपुट और आउटपुट

इनपुट:विभिन्न अक्षरों या प्रतीकों के साथ एक स्ट्रिंग। मान लें कि इनपुट "ABCDEEAB" आउटपुट है:सबसे बड़े पैलिंड्रोमिक बाद की सबसे लंबी लंबाई। यहाँ यह है 4.ABCDEEAB। तो पैलिंड्रोम AEEA है।

एल्गोरिदम

palSubSeqLen(str)

इनपुट - दी गई स्ट्रिंग।

आउटपुट - सबसे लंबे पैलिंड्रोमिक बाद की लंबाई।

आरंभ n =स्ट्रिंग की लंबाई len नामक एक तालिका बनाएं जिसका आकार n x n है और कॉलम के लिए 1s भरें:=2 से n, i के लिए करें:=0 से n - col, do j:=i + col - 1 अगर str[i] =str[j] और col =2, तो lenTable[i, j] :=2 और अगर str[i] =str[j], तो lenTable[i, j] :=lenTable[i+ 1, j-1] + 2 और lenTable[i, j] :=अधिकतम lenTable[i, j-1] और lenTable[i+1, j] किया हुआ रिटर्न लेनटेबल[0, n-1]End 

उदाहरण

#शामिल करेंनेमस्पेस का उपयोग करना std;int max (int x, int y) {रिटर्न (x> y)? x :y;}int palSubseqLen(string str) { int n =str.size (); इंट लेनटेबल [एन] [एन]; // उप-समस्याओं के परिणामों को संग्रहीत करने के लिए एक तालिका बनाएं (int i =0; i  

आउटपुट

सबसे लंबे पलिंड्रोम के बाद की लंबाई है:4

  1. पायथन में सबसे लंबे पैलिंड्रोमिक बाद की लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग s है; हमें s में सबसे लंबे पैलिंड्रोमिक अनुक्रम की लंबाई ज्ञात करनी है। इसलिए, यदि इनपुट s =aolpeuvekyl जैसा है, तो आउटपुट 5 होगा, क्योंकि पैलिंड्रोम स्तर है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - n :=आकार का एक फ़ंक्शन को परिभाषित करें dp()

  1. पायथन में सबसे लंबे समय तक बढ़ने वाला क्रम

    मान लीजिए कि हमारे पास पूर्णांकों की एक क्रमबद्ध सूची नहीं है। हमें सबसे लंबे समय तक बढ़ते क्रम को खोजना होगा। तो अगर इनपुट [10,9,2,5,3,7,101,18] है, तो आउटपुट 4 होगा, क्योंकि बढ़ते क्रम [2,3,7,101] इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - ट्रेल :=लंबाई 0 से लेकर अंकों की लंबाई -1 तक की एक

  1. पायथन में सबसे लंबा पालिंड्रोमिक सबस्ट्रिंग

    मान लीजिए कि हमारे पास एक स्ट्रिंग S है। हमें S में सबसे लंबी पैलिंड्रोमिक सबस्ट्रिंग ढूंढनी है। हम मान रहे हैं कि स्ट्रिंग S की लंबाई 1000 है। इसलिए यदि स्ट्रिंग BABAC है , तो सबसे लंबा पैलिंड्रोमिक सबस्ट्रिंग “BAB” है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे स्ट्रिंग की लंबाई के समान क्रम