Related Articles
Distinct state codes that appear in a string as contiguous sub-strings
• Last Updated : 26 Mar, 2019

Every state is represented by string of length 2. For example DL is used for Delhi, HP for Himachal Pradesh, UP for Uttar Pradesh, PB for Punjab etc.
Given a string str consisting of uppercase English alphabets only, the task is to find the number of distinct state codes that appear in the string as contiguous sub-strings.

Examples:

Input: str = “UPBRC”
Output: 4
UP, PB, BR and RC are 4 different state codes that appear in string as contiguous sub-strings.

Input: str = “UPUP”
Output: 2
UP and PU are the only state codes that appear in the given string.

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Store every sub-string of length 2 in a set and finally return the size of the set which is the required number of distinct state codes appearing in the given string as sub-strings.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;`` ` `// Function to return the count of``// distinct state codes``int` `countDistinctCode(string str)``{``    ``set codes;``    ``for` `(``int` `i = 0; i < str.length() - 1; i++)`` ` `        ``// Insert every sub-string``        ``// of length 2 in the set``        ``codes.insert(str.substr(i, 2));`` ` `    ``// Return the size of the set``    ``return` `codes.size();``}`` ` `// Driver code``int` `main()``{``    ``string str = ``"UPUP"``;``    ``cout << countDistinctCode(str);`` ` `    ``return` `0;``}`

## Java

 `// Java implementation of the above approach.``import` `java.util.*;`` ` `class` `GFG ``{`` ` `// Function to return the count of``// distinct state codes``static` `int` `countDistinctCode(String str)``{``    ``Set codes = ``new` `HashSet<>();``    ``for` `(``int` `i = ``0``; i < str.length() - ``1``; i++)`` ` `        ``// Insert every sub-String``        ``// of length 2 in the set``        ``codes.add(str.substring(i, i + ``2``));`` ` `    ``// Return the size of the set``    ``return` `codes.size();``}`` ` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``String str = ``"UPUP"``;``    ``System.out.println(countDistinctCode(str));``}``}`` ` `// This code has been contributed by 29AjayKumar`

## Python3

 `# Python3 implementation of the approach `` ` `# Function to return the count of ``# distinct state codes ``def` `countDistinctCode(string): `` ` `    ``codes ``=` `set``()``    ``for` `i ``in` `range``(``0``, ``len``(string) ``-` `1``): `` ` `        ``# Insert every sub-string ``        ``# of length 2 in the set ``        ``codes.add(string[i:i ``+` `2``]) `` ` `    ``# Return the size of the set ``    ``return` `len``(codes) `` ` `# Driver code ``if` `__name__ ``=``=` `"__main__"``: `` ` `    ``string ``=` `"UPUP"``    ``print``(countDistinctCode(string)) `` ` `# This code is contributed ``# by Rituraj Jain`

## C#

 `// C# implementation of the above approach. ``using` `System;``using` `System.Collections.Generic;`` ` `class` `GFG ``{ `` ` `// Function to return the count of ``// distinct state codes ``static` `int` `countDistinctCode(String str) ``{ ``    ``HashSet codes = ``new` `HashSet(); ``    ``for` `(``int` `i = 0; i < str.Length - 1; i++) `` ` `        ``// Insert every sub-String ``        ``// of length 2 in the set ``        ``codes.Add(str.Substring(i,2)); `` ` `    ``// Return the size of the set ``    ``return` `codes.Count; ``} `` ` `// Driver code ``public` `static` `void` `Main(String []args) ``{ ``    ``String str = ``"UPUP"``; ``    ``Console.Write(countDistinctCode(str)); ``} ``} `` ` `// This code has been contributed by Arnab Kundu`
Output:
```2
```

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.

My Personal Notes arrow_drop_up