# Number of substrings of a string

• Difficulty Level : Easy
• Last Updated : 02 Sep, 2021

Find total number of non-empty substrings of a string with N characters.

Input : str = “abc”
Output : 6
Every substring of the given string : “a”, “b”, “c”, “ab”, “bc”, “abc”

Input : str = “abcd”
Output : 10
Every substring of the given string : “a”, “b”, “c”, “d”, “ab”, “bc”, “cd”, “abc”, “bcd” and “abcd”

Count of non-empty substrings is n*(n+1)/2
If we include empty string also as substring, the count becomes n*(n+1)/2 + 1

How does above formula work?

1. Number of substrings of length one is n (We can choose any of the n characters)
2. Number of substrings of length two is n-1 (We can choose any of the n-1 pairs formed by adjacent)
3. Number of substrings of length three is n-2
(We can choose any of the n-2 triplets formed by adjacent)
4. In general, number of substrings of length k is n-k+1 where 1 <= k <= n

Total number of substrings of all lengths from 1 to n =
n + (n-1) + (n-2) + (n-3) + … 2 + 1
= n * (n + 1)/2

## C++

 `// CPP program to count number of substrings` `// of a string` `#include ` `using` `namespace` `std;`   `int` `countNonEmptySubstr(string str)` `{` `   ``int` `n = str.length();` `   ``return` `n*(n+1)/2;` `}`   `// driver code` `int` `main()` `{` `    ``string s = ``"abcde"``;` `    ``cout << countNonEmptySubstr(s);` `    ``return` `0;` `}`

## Java

 `// Java program to count number of substrings` `// of a string` `import` `java.io.*;`   `public` `class` `GFG {` `    `  `    ``static` `int` `countNonEmptySubstr(String str)` `    ``{` `        ``int` `n = str.length();` `        ``return` `n * (n + ``1``) / ``2``;` `    ``}` `    `  `    ``// Driver code` `    ``public` `static` `void` `main(String args[])` `    ``{` `        ``String s = ``"abcde"``;` `        ``System.out.println(` `                  ``countNonEmptySubstr(s));` `    ``}` `}`   `// This code is contributed ` `// by Manish Shaw (manishshaw1)`

## Python3

 `# Python3 program to count number` `# of substrings of a string`   `def` `countNonEmptySubstr(``str``):` `    ``n ``=` `len``(``str``);` `    ``return` `int``(n ``*` `(n ``+` `1``) ``/` `2``);`   `# driver code` `s ``=` `"abcde"``;` `print` `(countNonEmptySubstr(s));`   `# This code is contributed by` `# Manish Shaw (manishshaw1)`

## C#

 `// C# program to count number ` `// of substrings of a string` `using` `System;` `class` `GFG {` `    `  `    ``static` `int` `countNonEmptySubstr(``string` `str)` `    ``{` `        ``int` `n = str.Length;` `        ``return` `n * (n + 1) / 2;` `    ``}` `    `  `    ``// Driver Code` `    ``public` `static` `void` `Main()` `    ``{` `        ``string` `s = ``"abcde"``;` `        ``Console.Write(countNonEmptySubstr(s));` `    ``}` `}`   `// This code is contributed ` `// by Manish Shaw (manishshaw1)`

## PHP

 ``

## Javascript

 ``

Output:

`15`

https://youtu.be/9QxJo

-g0cMA

My Personal Notes arrow_drop_up
Recommended Articles
Page :