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

C++ में b से अधिक वाले उपसर्ग

इस समस्या में, हमें स्ट्रिंग str दिया जाता है जिसमें केवल a और b होता है और एक पूर्णांक N होता है जैसे कि str n बार जोड़कर एक स्ट्रिंग बनाई जाती है। हमारा काम सबस्ट्रिंग की कुल संख्या को प्रिंट करना है जिसमें a की गिनती b की गिनती से अधिक है।

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं

Input: aab 2
Output: 9
Explanation: created string is aabaab.
Substrings with count(a) > count(b) : ‘a’ , ‘aa’, ‘aab’, ‘aaba’, ‘aabaa’, ‘aabaab’, ‘aba’, ‘baa’, ‘abaa’.

इस समस्या को हल करने के लिए, हमें यह जांचना होगा कि स्ट्रिंग में आवश्यक उपसर्ग उपसमुच्चय हैं या नहीं। यहां, हम स्ट्रिंग की जांच करेंगे, न कि पूर्ण संस्करण के लिए। यहां, w उपसर्ग और a और b के होने की संख्या के आधार पर स्ट्रिंग की जांच करेगा।

यह कार्यक्रम हमारे समाधान के कार्यान्वयन को दिखाएगा

उदाहरण

#include <iostream>
#include <string.h>
using namespace std;
int prefixCount(string str, int n){
   int a = 0, b = 0, count = 0;
   int i = 0;
   int len = str.size();
   for (i = 0; i < len; i++) {
      if (str[i] == 'a')
         a++;
      if (str[i] == 'b')
         b++;
      if (a > b) {
      count++;
   }
}
if (count == 0 || n == 1) {
   cout<<count;
   return 0;
}
if (count == len || a - b == 0) {
   cout<<(count*n);
   return 0;
}
int n2 = n - 1, count2 = 0;
while (n2 != 0) {
   for (i = 0; i < len; i++) {
      if (str[i] == 'a')
         a++;
      if (str[i] == 'b')
         b++;
      if (a > b)
      count2++;
   }
   count += count2;
   n2--;
   if (count2 == 0)
      break;
   if (count2 == len) {
      count += (n2 * count2);
      break;
   }
   count2 = 0;
   }
   return count;
}
int main() {
   string str = "aba";
   int N = 2;
   cout<<"The string created by using '"<<str<<"' "<<N<<" times has ";
   cout<<prefixCount(str, N)<<" substring with count of a greater than count of b";
   return 0;
}

आउटपुट

The string created by using 'aba' 2 times has 5 substring with count of a greater than count of b

  1. C++ में दिए गए अंकों के योग के साथ संख्याएं (N से छोटी या उसके बराबर) गिनें

    एक स्ट्रिंग स्ट्रिंग को देखते हुए जिसमें एक संख्या और इनपुट के रूप में कुल योग होता है। लक्ष्य str तक की संख्याओं को खोजना है जिनमें अंकों का योग योग के बराबर हो। आइए उदाहरणों से समझते हैं। उदाहरण के लिए इनपुट - एन =”110” योग=5 आउटपुट - दिए गए अंकों के योग के साथ N से छोटी या उसके बराबर संख्याओं

  1. अधिकतम उप-मैट्रिक्स क्षेत्र जिसमें सी ++ प्रोग्राम में 0 की गिनती से 1 की गिनती अधिक है

    इस समस्या में, हमें nXn आकार का 2-डी मैट्रिक्स दिया गया है जिसमें बाइनरी नंबर (0/1) है। हमारा काम अधिकतम सबमैट्रिक्स क्षेत्र को खोजने के लिए एक प्रोग्राम बनाना है जिसमें 0 की गिनती से 1 की गिनती अधिक हो। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट bin[N][N] = {    {0, 1, 0, 0}, &nbs

  1. C++ में कुल n अंक के साथ m कोलिनियर वाले त्रिभुजों की संख्या

    हमें दो चर n और m दिए गए हैं जो एक 2D तल पर बिंदुओं की संख्या को निरूपित करते हैं। n बिंदुओं में से, m बिंदु संरेख हैं। लक्ष्य इन n बिंदुओं का उपयोग करके बनाए जा सकने वाले त्रिभुजों की संख्या ज्ञात करना है। समरेख बिंदु - एक ही रेखा पर स्थित बिंदु संरेख कहलाते हैं। बिंदु A और B संरेख हैं। दिया गय