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

C++ में एक स्ट्रिंग में सभी पालिंड्रोम उप-स्ट्रिंग की गणना करें

इस ट्यूटोरियल में, हम एक स्ट्रिंग में पैलिंड्रोम सबस्ट्रिंग्स की संख्या को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक स्ट्रिंग दी जाएगी। हमारा काम 3 से अधिक लंबाई वाले दिए गए स्ट्रिंग में पैलिंड्रोम सब स्ट्रिंग्स की संख्या गिनना है।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
//counting palindrome strings
int count_pstr(char str[], int n){
   int dp[n][n];
   memset(dp, 0, sizeof(dp));
   bool P[n][n];
   memset(P, false , sizeof(P));
   for (int i= 0; i< n; i++)
      P[i][i] = true;
   for (int i=0; i<n-1; i++) {
      if (str[i] == str[i+1]) {
         P[i][i+1] = true;
         dp[i][i+1] = 1 ;
      }
   }
   for (int gap=2 ; gap<n; gap++) {
      for (int i=0; i<n-gap; i++) {
         int j = gap + i;
         //if current string is palindrome
         if (str[i] == str[j] && P[i+1][j-1] )
            P[i][j] = true;
         if (P[i][j] == true)
            dp[i][j] = dp[i][j-1] + dp[i+1][j] + 1 - dp[i+1][j-1];
         else
            dp[i][j] = dp[i][j-1] + dp[i+1][j] - dp[i+1][j-1];
      }
   }
   return dp[0][n-1];
}
int main(){
   char str[] = "abaab";
   int n = strlen(str);
   cout << count_pstr(str, n) << endl;
   return 0;
}

आउटपुट

3

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

    हमें एक स्ट्रिंग दी गई है जिसमें एक अंग्रेजी वाक्य है। लक्ष्य स्ट्रिंग में शब्दों की संख्या का पता लगाना है जो पैलिंड्रोम हैं। पैलिंड्रोम शब्द वे होते हैं जिन्हें शुरू या अंत से पढ़ने पर वर्णमाला क्रम समान होता है। यदि वाक्य मैडम अच्छा मलयालम बोलती है है, तो पैलिंड्रोम शब्दों की संख्या 2 है। (मैडम औ

  1. सी ++ में एक स्ट्रिंग में विशेष पैलिंड्रोम की गणना करें

    हमें एक स्ट्रिंग str दिया जाता है। लक्ष्य str के सभी सबस्ट्रिंग को गिनना है जो विशेष पैलिंड्रोम हैं और जिनकी लंबाई 1 से अधिक है। विशेष पैलिंड्रोम ऐसे तार होते हैं जिनमें या तो सभी समान वर्ण होते हैं या केवल मध्य वर्ण भिन्न होते हैं। उदाहरण के लिए यदि स्ट्रिंग बाबा है तो विशेष पैलिंड्रोम जो मूल के स्

  1. C++ में समतल में समांतर चतुर्भुजों की संख्या

    हमें एक समतल दिया गया है जिसमें समांतर चतुर्भुज बनाने वाले बिंदु हैं और कार्य समांतर चतुर्भुजों की गणना करना है जो दिए गए बिंदुओं का उपयोग करके बनाए जा सकते हैं। समांतर चतुर्भुज में एक चतुर्भुज के विपरीत पक्ष समानांतर होते हैं और इसलिए विपरीत कोण बराबर होते हैं। इनपुट - int a[] = {0, 2, 5, 5, 2, 5,