Related Articles
Number of substrings of one string present in other
• Difficulty Level : Easy
• Last Updated : 03 Oct, 2018

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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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

## C++

 `// CPP program to count number of substrings of s1 ``// present in s2.``#include``#include``using` `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 code``int` `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 code``public` `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 s2``def` `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 code``if` `__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 code``public` `static` `void` `Main(String[] args) ``{``    ``String s1 = ``"aab"``, s2 = ``"aaaab"``;``    ``Console.WriteLine(countSubstrs(s1, s2));``}``}`` ` `// This code is contributed ``// by Kirti_Mangal`

## PHP

 ``
Output:
```6
```

My Personal Notes arrow_drop_up