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

C++ में स्ट्रिंग को पालिंड्रोम बनाने के लिए न्यूनतम विलोपन

समस्या कथन

आकार 'n' की एक स्ट्रिंग दी गई है। स्ट्रिंग को पालिंड्रोम बनाने के लिए न्यूनतम वर्णों को हटाने का कार्य है।

यदि दी गई स्ट्रिंग "abcda" है, तो हम पहले और अंतिम को छोड़कर किन्हीं 2 वर्णों को हटा सकते हैं ताकि यह पालिंड्रोम बन जाए।

  • यदि हम 'b' और 'c' हटाते हैं तो "ada" स्ट्रिंग पालिंड्रोम है
  • यदि हम 'c' और 'd' हटाते हैं तो "aba" स्ट्रिंग पालिंड्रोम है
  • यदि हम 'b' और 'd' हटाते हैं तो "aca" स्ट्रिंग पालिंड्रोम है

एल्गोरिदम

1. दी गई स्ट्रिंग का सबसे लंबा पालिंड्रोमिक सबसीक्वेंस ढूंढें। इसे "lpsSize" कहें।
2. हटाए जाने वाले न्यूनतम वर्ण = (स्ट्रिंग की लंबाई - lpsSize)

C++ उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;

int lps(string s, int i, int j) {
    if (i == j) return 1;
    if (s[i] == s[j] && i + 1 == j) return 2;
    if (s[i] == s[j]) return lps(s, i + 1, j - 1) + 2;
    return max(lps(s, i, j - 1), lps(s, i + 1, j));
}

int minDeletion(string s) {
    int n = s.size();
    int lpsSize = lps(s, 0, n - 1);
    return (n - lpsSize);
}

int main() {
    cout << "Minimum characters to be deleted = " << minDeletion("abcda") << endl;
    return 0;
}

आउटपुट

Minimum characters to be deleted = 2
  1. - C++ में एक स्ट्रिंग को दूसरी में बदलने के लिए न्यूनतम विलोपन और सम्मिलन

    विवरण आकार m और n की दो स्ट्रिंग्स str1 और str2 दी गई हैं। str1 से न्यूनतम वर्णों को हटाने और सम्मिलित करने का कार्य है ताकि इसे str2 में बदला जा सके। Str1 = tutorialspoint Str2 = tutorials str1 को str2 में बदलने के लिए हमें str1 से पांच वर्ण यानी point हटाने होंगे। एल्गोरिदम 1. str1 और str2 का सबस

  1. - C++ में जांचें कि संख्या पैलिंड्रोम है या नहीं

    यहां हम देखेंगे कि कैसे जांचें कि कोई संख्या पैलिंड्रोम है या नहीं। पैलिंड्रोम संख्याएं दोनों दिशाओं में समान होती हैं। उदाहरण के लिए, संख्या 12321 एक पैलिंड्रोम है, लेकिन 12345 पैलिंड्रोम नहीं है।तर्क बहुत सीधा है। हमें संख्या को उल्टा करना होगा, और यदि उल्टी संख्या वास्तविक संख्या के समान है, तो व

  1. - पायथन में स्ट्रिंग को पैलिंड्रोम बनाने के लिए आवश्यक न्यूनतम वर्णों की जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें सम्मिलित किए जाने वाले न्यूनतम वर्णों की संख्या ढूंढनी है ताकि स्ट्रिंग पैलिंड्रोम बन जाए।इसलिए, यदि इनपुट s = mad जैसा है, तो आउटपुट 2 होगा, क्योंकि हम am सम्मिलित करके madam प्राप्त कर सकते हैं।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −एक फ़ंक