# Number of substrings of a string

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?**

- Number of substrings of length one is
**n**(We can choose any of the n characters) - Number of substrings of length two is
**n-1**(We can choose any of the n-1 pairs formed by adjacent) - Number of substrings of length three is
**n-2**

(We can choose any of the n-2 triplets formed by adjacent) - 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 <bits/stdc++.h>` `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

`<?php` `// PHP program to count number` `// of substrings of a string` `function` `countNonEmptySubstr(` `$str` `)` `{` ` ` `$n` `= ` `strlen` `(` `$str` `);` ` ` `return` `$n` `* (` `$n` `+ 1) / 2;` `}` `// Driver Code` `$s` `= ` `"abcde"` `;` `echo` `countNonEmptySubstr(` `$s` `);` ` ` `// This code is contributed by Anuj_67` `?>` |

## Javascript

`<script>` `// JavaScript program to count number of substrings` `// of a string` `function` `countNonEmptySubstr(str)` ` ` `{` ` ` `let n = str.length;` ` ` `return` `n * (n + 1) / 2;` ` ` `}` ` ` ` ` `// Driver code` ` ` `let s = ` `"abcde"` `;` ` ` `document.write(countNonEmptySubstr(s));` `// This code is contributed shivanisinghss2110` `</script>` |

**Output:**

15

https://youtu.be/9QxJo

-g0cMA