Given two strings **S1** and **S2 **of lengths** M** and **N** respectively, the task is to calculate the sum of the frequencies of the characters of string** ****S1** in the string** S2**.

**Examples:**

Input:S1 = “pPKf”, S2 = “KKKttsdppfP”Output:7Explanation:

The character ‘p’ occurs twice in the string S2.

The character ‘P’ occurs once in the string S2.

The character ‘K’ occurs thrice in the string S2.

The character ‘f’ occurs once in the string S2.

Therefore, in total, characters of the string S1 occurs 7 times in the string S2.

Input:S1 = “geEksFOR”, S2 = “GeEksforgeEKS”Output:7

**Naive Approach:** The simplest approach is to iterate over each character of the string** S1**, count its frequency in the string **S2**. **Time Complexity:** O(N^{2})**Auxiliary Space:** O(1)

**Efficient Approach:** The above approach can be optimized by using Hashing. Follow the steps below to solve the problem:

- Initialize an integer
**count**to store the required sum. - Insert all the characters of string
**S1**in a Set, say**bset**. - Iterate over characters of the string
**S2**and check if the current character is present in the set,**bset**, or not. If found to be true, then increment**count**by one. - After completing the above steps, print the value of
**count**as the result.

Below is the implementation of the above approach:

## C++

`// CPP program for the above approach` `#include<bits/stdc++.h>` `using` `namespace` `std;` `// Function to find sum of frequencies` `// of characters of S1 present in S2` `void` `countTotalFrequencies(string S1, string S2)` `{` ` ` `// Insert all characters of` ` ` `// string S1 in the set` ` ` `set<` `char` `> bset;` ` ` `for` `(` `auto` `x:S1)` ` ` `bset.insert(x);` ` ` `int` `count = 0;` ` ` `// Traverse the string S2` ` ` `for` `(` `auto` `x: S2)` ` ` `{` ` ` `// Check if X is present` ` ` `// in bset or not` ` ` `if` `(bset.find(x) != bset.end())` ` ` `// Increment count by 1` ` ` `count += 1;` ` ` `}` ` ` `// Finally, print the count` ` ` `cout << count << endl;` `}` `// Driver Code` `int` `main()` `{` ` ` ` ` `// Given strings` ` ` `string S1 = ` `"geEksFOR"` `;` ` ` `string S2 = ` `"GeEksforgeEKS"` `;` ` ` `countTotalFrequencies(S1, S2);` `}` `// This code is contributed by ipg2016107.` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program for the above approach` `# Function to find sum of frequencies` `# of characters of S1 present in S2` `def` `countTotalFrequencies(S1, S2):` ` ` `# Insert all characters of` ` ` `# string S1 in the set` ` ` `bset ` `=` `set` `(S1)` ` ` `count ` `=` `0` ` ` `# Traverse the string S2` ` ` `for` `x ` `in` `S2:` ` ` `# Check if X is present` ` ` `# in bset or not` ` ` `if` `x ` `in` `bset:` ` ` `# Increment count by 1` ` ` `count ` `+` `=` `1` ` ` `# Finally, print the count` ` ` `print` `(count)` `# Driver Code` `# Given strings` `S1 ` `=` `"geEksFOR"` `S2 ` `=` `"GeEksforgeEKS"` `countTotalFrequencies(S1, S2)` |

*chevron_right*

*filter_none*

**Output:**

7

**Time Complexity:** O(N)**Auxiliary Space:** O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.