Related Articles

# Number of substrings of a string

• Difficulty Level : Easy
• Last Updated : 08 Jun, 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, mumber 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

 ``
Output:
`15`

https://youtu.be/9QxJo

-g0cMA

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up