Number of substrings of one string present in other

• Difficulty Level : Easy
• Last Updated : 14 May, 2021

Suppose we are given a string s1, we need to the find total number of substring(including multiple occurrences of the same substring) of s1 which are present in string s2.

Examples:

Input : s1 = aab
s2 = aaaab
Output :6
Substrings of s1 are ["a", "a", "b", "aa",
"ab", "aab"]. These all are present in s2.

Input :s1 = abcd
s2 = swalencud
Output :3

The idea is to consider all substrings of s1 and check if it presents in s2.

C++

 // CPP program to count number of substrings of s1// present in s2.#include#includeusing namespace std; int countSubstrs(string s1, string s2){    int ans = 0;     for (int i = 0; i < s1.length(); i++) {                 // s3 stores all substrings of s1        string s3;        for (int j = i; j < s1.length(); j++) {            s3 += s1[j];             // check the presence of s3 in s2            if (s2.find(s3) != string::npos)                ans++;        }    }    return ans;} // Driver codeint main(){    string s1 = "aab", s2 = "aaaab";    cout << countSubstrs(s1, s2);    return 0;}

Java

 // Java program to count number of// substrings of s1 present in s2.import java.util.*; class GFG{ static int countSubstrs(String s1,                        String s2){int ans = 0; for (int i = 0; i < s1.length(); i++){         // s3 stores all substrings of s1    String s3 = "";    char[] s4 = s1.toCharArray();    for (int j = i; j < s1.length(); j++)    {        s3 += s4[j];         // check the presence of s3 in s2        if (s2.indexOf(s3) != -1)            ans++;    }}return ans;} // Driver codepublic static void main(String[] args){    String s1 = "aab", s2 = "aaaab";    System.out.println(countSubstrs(s1, s2));}} // This code is contributed by ChitraNayal

Python 3

 # Python 3 program to count number of substrings of s1# present in s2. # Function for counting no. of substring# of s1 present in s2def countSubstrs(s1, s2) :    ans = 0    for i in range(len(s1)) :        s3 = ""         # s3 stores all substrings of s1        for j in range(i, len(s1)) :            s3 += s1[j]             # check the presence of s3 in s2            if s2.find(s3) != -1 :                ans += 1    return ans # Driver codeif __name__ == "__main__" :    s1 = "aab"    s2 = "aaaab"     # function calling    print(countSubstrs(s1, s2))     # This code is contributed by ANKITRAI1

C#

 // C# program to count number of// substrings of s1 present in s2.using System; class GFG{static int countSubstrs(String s1,                        String s2){int ans = 0; for (int i = 0; i < s1.Length; i++){         // s3 stores all substrings of s1    String s3 = "";    char[] s4 = s1.ToCharArray();    for (int j = i; j < s1.Length; j++)    {        s3 += s4[j];         // check the presence of s3 in s2        if (s2.IndexOf(s3) != -1)            ans++;    }}return ans;} // Driver codepublic static void Main(String[] args){    String s1 = "aab", s2 = "aaaab";    Console.WriteLine(countSubstrs(s1, s2));}} // This code is contributed// by Kirti_Mangal



Javascript


Output:
6

My Personal Notes arrow_drop_up