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

C++ में इंडेक्स i खोजें जैसे कि S1 का उपसर्ग और S2 का प्रत्यय i तक जोड़ने पर पैलिंड्रोम बने


अवधारणा

दो दी गई स्ट्रिंग्स S1 और S2 की समान लंबाई के संबंध में, हमारा कार्य एक इंडेक्स i निर्धारित करना है जैसे कि S1[0…i] और S2[i+1…n-1] एक साथ जोड़ने पर एक पैलिंड्रोम दें। यह देखा गया है कि यदि ऐसा इंडेक्स ढूंढना संभव नहीं है तो -1 प्रिंट करें।

इनपुट

S1 = "pqrsu", S2 = "wxyqp"

आउटपुट

1

S1[0..1] = "pq", S2[2..n-1] = "ypq"

S1 + S2 = "pqyqp" इंगित करता है कि एक पैलिंड्रोम है।

इनपुट

S1 = "pqrst", S2 = "qprqz"

आउटपुट

-1

विधि

<उल क्लास="सूची"><ली>सबसे पहले, हम 0 से n (स्ट्रिंग की लंबाई) तक पुनरावृति करते हैं और S1 से i-वें वर्ण को दूसरी स्ट्रिंग (मान लें यह S है) में कॉपी करते हैं।<ली>उसके बाद हम एक और अस्थायी स्ट्रिंग temp लेते हैं और इंडेक्स i+1 से n तक S2 के वर्णों को कॉपी करते हैं।<ली>अंत में, हम सत्यापित करते हैं कि स्ट्रिंग (S + temp) पैलिंड्रोम है या नहीं।

उदाहरण

<प्रि क्लास="प्रिटीप्रिंट नोट्रांसलेट">// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // फ़ंक्शन जो सच लौटाता है यदि s पैलिंड्रोम है bool isPalindrome(string str){    int i = 0;    int b = str.length() - 1;    while (i< b) {       if (str[i] != str[b])          return false;       i++;       b--;    }    return true; } // आवश्यक इंडेक्स लौटाने वाला फ़ंक्शन int getIndex1(string S1, string S2, int n){    string S = "";    for (int i = 0; i< n; a++) {       // S में i-वें वर्ण को कॉपी करने के लिए उपयोग किया जाता है       S = S + S1[i];       string temp = "";       // Temp में स्ट्रिंग s2 के सभी वर्णों को कॉपी करने के लिए उपयोग किया जाता है       for (int b = i + 1; b < n; b++)          temp += S2[b];       // सत्यापित करें कि स्ट्रिंग पैलिंड्रोम है या नहीं       if (isPalindrome(S + temp)) {          return i;       }    }    return -1; } // ड्राइवर कोड int main(){    string S1 = "pqrsu", S2 = "wxyqp";    int n = S1.length();    cout << getIndex1(S1, S2, n);    return 0; }

आउटपुट

1

  1. - C++ में दी गई संख्या n के लिए x ढूंढें जहां x + अंकों का योग = n

    समस्या विवरण एक संख्या n दी गई है, हमें एक मान x ढूंढना है जिससे x + x के अंकों का योग = n हो। उदाहरण के लिए, n = 21 के लिए, x = 15 होगा क्योंकि 15 + (1+5) = 21। हल दृष्टिकोण सरल दृष्टिकोण: 1 से n तक पुनरावृति करें, प्रत्येक संख्या के लिए जांचें कि क्या संख्या + उसके अंकों का योग = n है। यदि हां,

  1. - C++ प्रोग्राम: शब्द को पैलिंड्रोम पार्टीशन्स में विभाजित करने के तरीकों की संख्या खोजें

    यहां हम एक C++ प्रोग्राम पर चर्चा करेंगे जो एक शब्द को इस तरह पार्टीशन करने के तरीकों की संख्या खोजता है कि प्रत्येक शब्द एक पैलिंड्रोम हो। एल्गोरिदम Begin शब्द को इनपुट के रूप में लें। function partitionadd(vector

  1. - Python में सूचकांक i ढूंढना जैसे कि S1 का उपसर्ग और S2 का प्रत्यय i तक जुड़ने पर पैलिंड्रोम बनाएं

    मान लीजिए हमारे पास समान लंबाई के दो स्ट्रिंग S1 और S2 हैं, हमें एक सूचकांक i ढूंढना है जैसे कि S1[0...i] और S2[i+1...n-1] जब एक साथ जुड़े जाते हैं तो एक पैलिंड्रोम देते हैं। जब यह संभव नहीं है, तो -1 वापस करें। तो, यदि इनपुट S1 = pqrsu, S2 = wxyqp की तरह है, तो आउटपुट 1 होगा क्योंकि S1[0..1] = pq,