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

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

समस्या कथन

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

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

  • अगर हम अक्षर 'b' और 'c' को हटाते हैं तो "ada" स्ट्रिंग एक पैलिंड्रोम है

  • अगर हम अक्षर 'c' और 'd' को हटा दें तो "aba" स्ट्रिंग एक पैलिंड्रोम है

  • अगर हम अक्षर 'बी' और 'डी' हटाते हैं तो "एका" स्ट्रिंग एक पैलिंड्रोम है

एल्गोरिदम

1. Find longest palindromic subsequence of given string. Let’s call it as “lpsSize”.
2. Minimum characters to be deleted = (length of string – lpsSize) Code.

उदाहरण

#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);
   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” To transform str1 to str2 we have to delete five characters i.e. &ld

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

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

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

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