
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Count Common Characters in Two Strings in C++
We are given with the two strings let’s say str1 and str2 and the task is to find the count of common characters in two strings i.e. if str1[i] = str[j], then they will be considered as a pair and count will increased to 1 and if str1[i]!=str2[j] then they willn’t be considered as a pair and count willn’t increase to 1.
For Example
Input − str1 = “hello” str2 = “heoo” Output − count is: 3
Explanation − str1[0] = str2[0] i.e. h ; str1[1] = str2[1] i.e. e ; str1[2]!=str2[2] i.e. l and o; str1[3]=str2[3] i.e. o. So, the pairs with similar letters are 3 and 1 pair containing different letters.
Input − str1 = “point” str2 = “print” Output − count is: 4
Explanation − str1[0] = str2[0] i.e. p ; str1[1] != str2[1] i.e. o and r ; str1[2] =str2[2] i.e. i; str1[3]=str2[3] i.e. n; str1[4]=str2[4] i.e. t. So, the pairs with similar letters are 4 and 1 pair containing different letters.
Approach used in the below program is as follows
Input the two strings str1 and str2
Calculate the size of both the strings using length() function that will return an integer value as per the number of letters in the string including the spaces.
Initially, Initialize the frequency of characters in both the string with 0.
Now, for updating the frequency of str1 apply “f1[str1[i] - 'a']++” that will increase the frequency with every iteration and apply the same process with str2
For calculating the count of pairs apply min() function for f1 and f2.
Display the result
Example
#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; }
Output
If we run the above code it will generate the following output −
Total pairs with str1[i]=str2[j] are − 6