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

एक पैलिंड्रोमिक स्ट्रिंग बी खोजें जैसे कि दिया गया स्ट्रिंग ए सी ++ में बी का एक क्रम है

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

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

उदाहरण

#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. दी गई श्रेणी में एक अलग जोड़ी (x, y) खोजें जैसे कि x, y को C++ में विभाजित करता है

    यहां हम एक दिलचस्प समस्या देखेंगे, हमें एक जोड़ी (x, y) मिलेगी, जहां x और y श्रेणी में हैं इसलिए l <=x, y <=r, जोड़ी में एक संपत्ति होगी, x का मान y को विभाजित करता है . यदि कई जोड़े उपलब्ध हैं, तो केवल एक को चुनें। हम इस समस्या को O(1) समय में हल कर सकते हैं, यदि हमें निचली सीमा l और 2l का मान प्र

  1. सी ++ प्रोग्राम किसी दिए गए स्ट्रिंग के क्रमपरिवर्तन की संख्या का पता लगाने के लिए

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

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

    यहां हम एक शब्द को विभाजित करने के तरीकों की संख्या को खोजने के लिए एक सी ++ प्रोग्राम पर चर्चा करेंगे ताकि प्रत्येक शब्द एक पालिंड्रोम हो। एल्गोरिदम Begin    Take the word as input.    Function partitionadd(vector<vector<string> > &u, string &s, vector<str