# Problem Link:

# Difficulty:

CakeWalk

# Pre-requisites:

Basic Language Constructions

# Problem:

Find the number of distinct consecutive 2-letter substrings of the string S.

# Explanation:

## Solution for the subtask 1 (35 points):

If |S| = 2, then there is only one possible substring - the string S. So, the answer is 1.

If |S| = 3, then if all letters in the string are the same, then the answer is 1, otherwise there are 2 distinct consecutive 2-letter substrings, so, the answer is then 2.

## Solution for all subtasks:

Consider a boolean array A[][] of $26$x$ 26$ elements.

Let A[i,j] be **true** if there is a substring of S with first letter - the i_{th} Latin alphabet letter and the second letter - the j_{th} Latin alphabet letter.

Initially all elements of A[][] are false.

Let’s iterate through the symbols of the string S and set true all elements of A for the corresponding substrings. Note, that S is 1-indexed in the given pseudocode.

The pseudocode for the same follows:

```
For k := 2 to |S|
A[S[k-1], S[k]] = true;
```

The last step is to iterate through the array A and calculate the number of elements A[i,j] such that A[i,j] is **true**.

The complexity is O(|S|) for a single test case.

# Setter’s Solution:

Can be found here

# Tester’s Solution:

Can be found here