Last Updated: 6 Apr, 2021

Ninja and substrings

Easy
Asked in companies
LinkedInLivekeeping (An IndiaMART Company)Zoho Corporation

Problem statement

Ninja has been given a string 'STR' containing only lowercase alphabetic characters. Ninja has to find the number of all the different possible substrings of size two that appear in 'STR' as contiguous substrings.

For example:

If the string is “abcd”, then all possible substrings of size two are { “ab”, “bc”, “cd”}.
Input Format:
The first line contains a single integer ‘T’ representing the number of test cases. 

The next ‘T’ lines contain a string 'STR' which denotes the input string.
Output Format:
For each test case, return all different substrings of size two that appear in 'STR' as contiguous substrings.

Output for every test case will be printed in a separate line.
Note:
You don’t need to print anything; It has already been taken care of.
Constraints:
1 <= T <= 5*10^3
2 <= |STR| <= 10^3

Time limit: 1 sec

Approaches

01 Approach

The basic idea is to iterate through the ‘STR’ and store all the substrings of size 2 in a HashSet and finally return the size of this HashSet.

 

The steps are as follows:

 

  1. Declare a HashSet ’DIFFERENT_SUB_STRINGS’ in which we will store all the substrings of size 2.
  2. Run a loop from ‘i’ = 0 to length of ’STR’ - 1:
    1. Add substring of ’STR’ from ’i’ to ’i’ + 1 in ’DIFFERENT_SUB_STRINGS’.
  3. Finally, return the size of ’DIFFERENT_SUB_STRINGS’.