हमें दो स्ट्रिंग्स के साथ दिया गया है, मान लें कि str1 और str2 और कार्य दो स्ट्रिंग्स में सामान्य वर्णों की गणना करना है, अर्थात यदि str1 [i] =str [j], तो उन्हें एक जोड़ी माना जाएगा और गिनती बढ़ जाएगी से 1 और यदि str1[i]!=str2[j] तो उन्हें एक जोड़ी के रूप में नहीं माना जाएगा और गिनती 1 तक नहीं बढ़ेगी।
उदाहरण के लिए
Input − str1 = “hello” str2 = “heoo” Output − count is: 3
स्पष्टीकरण -str1[0] =str2[0] यानी एच; str1[1] =str2[1] यानी ई; str1[2]!=str2[2] यानी l और o; str1[3]=str2[3] यानी o. तो, समान अक्षरों वाले जोड़े 3 और 1 जोड़े हैं जिनमें अलग-अलग अक्षर हैं।
Input − str1 = “point” str2 = “print” Output − count is: 4
स्पष्टीकरण -str1[0] =str2[0] यानी p; str1[1] !=str2[1] यानी o और r; str1[2] =str2[2] यानी मैं; str1[3]=str2[3] यानी n; str1[4]=str2[4] यानी t. तो, समान अक्षरों वाले जोड़े 4 और 1 जोड़े हैं जिनमें अलग-अलग अक्षर हैं।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
दो स्ट्रिंग्स str1 और str2 इनपुट करें
-
लंबाई () फ़ंक्शन का उपयोग करके दोनों स्ट्रिंग्स के आकार की गणना करें जो रिक्त स्थान सहित स्ट्रिंग में अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।
-
प्रारंभ में, दोनों स्ट्रिंग में वर्णों की आवृत्ति को 0 से प्रारंभ करें।
-
अब, str1 की आवृत्ति को अद्यतन करने के लिए "f1[str1[i] - 'a']++" लागू करें जो प्रत्येक पुनरावृत्ति के साथ आवृत्ति को बढ़ाएगा और str2 के साथ समान प्रक्रिया को लागू करेगा
-
जोड़े की संख्या की गणना के लिए f1 और f2 के लिए min() फ़ंक्शन लागू करें।
-
परिणाम प्रदर्शित करें
उदाहरण
#include <iostream>
using namespace std;
// Function to count the valid indices pairs
int pairs(string str1, int size1, string str2, int size2){
// f1 and f2 for frequencies of characters
// of string str1 and str2
int f1[26] = { 0 };
int f2[26] = { 0 };
// 'c' To count the valid pairs
int i, c = 0;
//updating the frequencies of str1 and st2
for (i = 0; i < size1; i++){
f1[str1[i] - 'a']++;
}
for (i = 0; i < size2; i++){
f2[str2[i] - 'a']++;
}
// Find the count of valid pairs
for (i = 0; i < 26; i++){
c += (min(f1[i], f2[i]));
}
return c;
}
// main function
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