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

एक स्ट्रिंग की घटनाओं की गणना करें जिसे सी ++ में किसी अन्य दिए गए स्ट्रिंग से बनाया जा सकता है

हमें इनपुट के रूप में दो स्ट्रिंग्स str_1 और str_2 दिए गए हैं। लक्ष्य स्ट्रिंग की संख्या को str_2 के समान खोजना है जिसे str_1 से चुने गए अक्षरों का उपयोग करके बनाया जा सकता है जिसमें से प्रत्येक वर्ण का उपयोग केवल एक बार किया जाता है।

नोट − दोनों में सभी अक्षर एक ही स्थिति में हैं।

आइए उदाहरणों से समझते हैं।

इनपुट − str_1 ="abcaaaabca", str_2 ="bca";

आउटपुट - एक स्ट्रिंग की आवृत्ति की गणना करें जिसे किसी अन्य दिए गए स्ट्रिंग से बनाया जा सकता है:2

स्पष्टीकरण − str_a में bca सबस्ट्रिंग −

str_1[1-3]=”bca” and str[7-9]=”bca”

इनपुट − str_1 ="के बारे में", str_2 ="cout";

आउटपुट - एक स्ट्रिंग की गणना आवृत्तियां जो किसी अन्य दिए गए स्ट्रिंग से बनाई जा सकती हैं - 0

स्पष्टीकरण - सबस्ट्रिंग cout str_a में मौजूद नहीं है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

हम पहले str_1 में सभी अक्षरों की आवृत्ति की गणना करेंगे और इसे सरणी arr_1[26] में संग्रहीत करेंगे और arr_2 में सभी वर्णों की आवृत्ति को arr_2[26] में संग्रहीत करेंगे।

  • दो तार str_1 और str_2 लें। लंबाई की गणना str_1.size() औरstr_2.size() के रूप में करें।

  • फ़ंक्शन count_string(string str_1, int len_str_1, string str_2, int len_str_2) स्ट्रिंग और लंबाई दोनों लेता है और कई स्ट्रिंग str_2 देता है जिन्हें str_1 से बनाया जा सकता है।

  • आरंभिक गणना को INT_MAX के रूप में लें।

  • str_1 में वर्णों की आवृत्ति के लिए arr_1[26] और 0 के साथ arr_2 में वर्णों की आवृत्ति के लिए arr_2[26] प्रारंभ करें।

  • arr_1 और arr_2 में लूप और अपडेट फ़्रीक्वेंसी का उपयोग करके str_1 और str_2 दोनों को पार करें।

  • अब लूप के लिए फिर से arr_2 का उपयोग करें और यदि वर्तमान आवृत्ति arr_2[i] शून्य नहीं है तो न्यूनतम गणना (पिछला मान) और arr_1[i]/arr_2[i] (str_1 से प्रत्येक वर्ण को str_2 के प्रत्येक वर्ण के लिए केवल एक बार लेना) ।

  • अंत में, गिनती में str_1 और str_2 के मिलान किए गए संगत वर्णों का न्यूनतम मान होगा। उदाहरण aaabbbb (a=3,b=4) और abb(a=1,b=2) न्यूनतम गिनती 1 होगी

  • वांछित परिणाम के रूप में सभी लूपों के अंत में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int count_string(string str_1, int length_str_1, string str_2, int length_str_2){
   int count = INT_MAX;
   int arr_1[26] = { 0 };
   int arr_2[26] = { 0 };
   for (int i = 0; i < length_str_1; i++){
      arr_1[str_1[i] - 'a']++;
   }
   for (int i = 0; i < length_str_2; i++){
      arr_2[str_2[i] - 'a']++;
   }
   int total_alphabets = 26;
   for (int i = 0; i < total_alphabets; i++){
      if(arr_2[i]){
         count = min(count, arr_1[i] / arr_2[i]);
      }
   }
   return count;
}
int main(){
   string str_1 = "knowledge", str_2 = "know";
   int length_str_1 = str_1.size();
   int length_str_2 = str_2.size();
   cout<<"Count occurrences of a string that can be constructed from another given string are: "<<count_string(str_1,length_str_1, str_2, length_str_2);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count occurrences of a string that can be constructed from another given string are: 1

  1. सी ++ में दी गई सीमा में स्थित बीएसटी उपट्री की गणना करें

    =5 और <=50 है। इनपुट − नीचे दिया गया पेड़ - रेंज [ 3-6 ] आउटपुट − रेंज में पड़े पेड़ों की संख्या − 2 स्पष्टीकरण - नोड्स 4 और 6 के लिए ही। उनके उप-प्रजातियां ( NULL ) 3-6 के बीच होती हैं। इनपुट - नीचे दिया गया पेड़:रेंज [ 12-20 ] आउटपुट − श्रेणी में पड़े पेड़ों की संख्या − 3 स्पष्टीकरण - नो

  1. सी ++ में दिए गए स्ट्रिंग के सभी सबस्ट्रिंग के अद्वितीय वर्णों की गणना करें

    मान लीजिए कि हम countUniqueChars(s) नामक एक फ़ंक्शन को परिभाषित करना चाहते हैं जो s पर अद्वितीय वर्णों की संख्या लौटाएगा, इसलिए यदि s =HELLOWORLD तो H, E, W, R, D अद्वितीय वर्ण हैं क्योंकि वे s में केवल एक बार दिखाई देते हैं, इसलिए countUniqueChars(s) =5. अब इस समस्या पर एक स्ट्रिंग दी गई है, हमें

  1. सी ++ में दिए गए स्ट्रिंग में सभी पालिंड्रोमिक बाद की गणना करें

    इस ट्यूटोरियल में, हम किसी दिए गए स्ट्रिंग में सभी पैलिंड्रोमिक अनुक्रमों की संख्या को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग प्रदान की जाएगी। हमारा कार्य उस दिए गए स्ट्रिंग में किए जा सकने वाले पैलिंड्रोमिक अनुक्रमों की संख्या ज्ञात करना है। उदाहरण #include<iostrea