हमें दो स्ट्रिंग्स दी गई हैं, मान लीजिए str1 और str2 और कार्य दो स्ट्रिंग्स में सामान्य वर्णों की संख्या खोजना है यानी यदि str1[i] = str[j], तो उन्हें एक जोड़ी माना जाएगा और गिनती 1 से बढ़ जाएगी और यदि str1[i]!=str2[j] तो उन्हें एक जोड़ी नहीं माना जाएगा और गिनती 1 से नहीं बढ़ेगी।
उदाहरण के लिए
इनपुट - str1 = "hello" str2 = "heoo" आउटपुट - गिनती: 3
व्याख्या - str1[0] = str2[0] यानी h; str1[1] = str2[1] यानी e; str1[2]!=str2[2] यानी l और o; str1[3]=str2[3] यानी o. तो, समान अक्षरों वाले जोड़े 3 हैं और 1 जोड़ा अलग अक्षरों वाला है।
इनपुट - str1 = "point" str2 = "print" आउटपुट - गिनती: 4
व्याख्या - str1[0] = str2[0] यानी p; str1[1] != str2[1] यानी o और r; str1[2] =str2[2] यानी i; str1[3]=str2[3] यानी n; str1[4]=str2[4] यानी t. तो, समान अक्षरों वाले जोड़े 4 हैं और 1 जोड़ा अलग अक्षरों वाला है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
दो स्ट्रिंग्स str1 और str2 इनपुट करें
length() फंक्शन का उपयोग करके दोनों स्ट्रिंग्स का आकार गणना करें जो स्ट्रिंग में स्पेस सहित अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।
प्रारंभ में, दोनों स्ट्रिंग्स में वर्णों की आवृत्ति को 0 से आरंभ करें।
अब, str1 की आवृत्ति को अपडेट करने के लिए "f1[str1[i] - 'a']++" लागू करें जो हर पुनरावृत्ति के साथ आवृत्ति को बढ़ाएगा और str2 के साथ भी यही प्रक्रिया लागू करें
जोड़ों की गिनती की गणना करने के लिए f1 और f2 के लिए min() फंक्शन लागू करें।
परिणाम प्रदर्शित करें
उदाहरण
#include <iostream>
using namespace std;
// वैध इंडेक्स जोड़ों को गिनने के लिए फंक्शन
int pairs(string str1, int size1, string str2, int size2) {
// स्ट्रिंग str1 और str2 के वर्णों की आवृत्ति के लिए f1 और f2
int f1[26] = {0};
int f2[26] = {0};
// वैध जोड़ों को गिनने के लिए 'c'
int i, c = 0;
// str1 और str2 की आवृत्तियों को अपडेट करना
for (i = 0; i < size1; i++) {
f1[str1[i] - 'a']++;
}
for (i = 0; i < size2; i++) {
f2[str2[i] - 'a']++;
}
// वैध जोड़ों की गिनती खोजें
for (i = 0; i < 26; i++) {
c += (min(f1[i], f2[i]));
}
return c;
}
// मुख्य फंक्शन
int main() {
string str1 = "tutorialspoint", str2 = "codingground";
int size1 = str1.length(), size2 = str2.length();
cout << "Total pairs with str1[i]=str2[j] are: ";
cout << pairs(str1, size1, str2, size2);
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
Total pairs with str1[i]=str2[j] are - 6