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

C++ में एक पैलिंड्रोमिक स्ट्रिंग B ढूंढें जिससे दी गई स्ट्रिंग A, B का उपअनुक्रम हो


मान लीजिए हमारे पास एक स्ट्रिंग A है, हमें दूसरी स्ट्रिंग B ढूंढनी है, जो पैलिंड्रोम होगी। और दी गई स्ट्रिंग A, B का उपअनुक्रम होगी। एक स्ट्रिंग का उपअनुक्रम एक स्ट्रिंग है जिसे शेष वर्णों का क्रम बदले बिना कुछ वर्णों को हटाकर बनाया जा सकता है। मान लीजिए स्ट्रिंग "cotst" है, तो उत्पन्न स्ट्रिंग "contest" होगी। इस प्रोग्राम के लिए इनपुट के रूप में हमने A = "ab" चुना है, उत्पन्न स्ट्रिंग "abba" होगी, यह पैलिंड्रोम है।

इसे हल करने के लिए, हम इस दृष्टिकोण का पालन करेंगे। यह बहुत सरल है, हम A को उलट देंगे, फिर उलटे भाग को A के बाद जोड़ देंगे, और B बनाएंगे। तो B = A + reverse(A)

उदाहरण

#include<iostream> #include<algorithm> using namespace std; bool isPalindrome(string str) {     string temp = str;     reverse(str.begin(), str.end());     return str == temp; } string formPalindromeStr(string A) {     string B = A;     reverse(A.begin(), A.end());     A = A + B;     if (isPalindrome(B))         return B;         return A; } string reverse(string input) {     string temp = input;     int left, right = 0;     right = temp.length() - 1;     for (left = 0; left < right; left++, right--)         swap(temp[left], temp[right]);     return temp; } int main(int argc, char const *argv[]) {     string A = "Hello";     cout << "The B is: " << formPalindromeStr(A); }

आउटपुट

The B is: olleHHello

  1. - C++ में दी गई रेंज में विशिष्ट जोड़ी (x, y) ढूंढें जहां x, y को विभाजित करता है

    समस्या विवरण एक रेंज [l, r] दी गई है, हमें एक जोड़ी (x, y) ढूंढनी है जहां l ≤ x, y ≤ r और x, y को विभाजित करता है। यदि कई जोड़ियां हैं तो कोई भी एक वापस करें। हल दृष्टिकोण यह समस्या O(1) समय में हल हो सकती है। सबसे छोटा अनुपात y/x = 2 होता है। इसलिए x = l और y = 2l लेने से हमेशा एक वैध जोड़ी मिलती

  1. - C++ प्रोग्राम: दी गई स्ट्रिंग के क्रमचय (Permutations) की संख्या ज्ञात करना

    हम एक स्ट्रिंग के कैरेक्टर्स को अलग-अलग क्रम में व्यवस्थित कर सकते हैं। यहां हम देखेंगे कि दी गई स्ट्रिंग से कितने क्रमचय बनाए जा सकते हैं। हम जानते हैं कि यदि एक स्ट्रिंग abc है। इसमें तीन कैरेक्टर्स हैं; हम उन्हें 3! = 6 अलग-अलग तरीकों से व्यवस्थित कर सकते हैं। इसलिए n कैरेक्टर्स वाली स्ट्रिंग क

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

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