Given string str of size N. The duty is to find out whether or not a personality is simply occurring as a single contiguous substring or not i.e., there shouldn’t exist every other alphabet characters in between two identical alphabets within the string.
Rationalization: There exists ‘A’ in between ‘a’ and ‘a’. Therefore “aa” turns into discontinuous.
Rationalization: Completely different segments fashioned from the given enter are “aa”, “AA”, “bb” and “BB” are all steady and haven’t any hurdles in between.
Method: To unravel the given drawback use the next concept:
Retailer the final prevalence of every character in Hash-Map in order that it may be in contrast with its earlier prevalence and discover the space between them. If this distance involves be greater than 1 then it’s discontinuous else steady.
Comply with the given steps to resolve the given drawback:
- Traverse string str (say i).
- If str[i] is current within the map
- If the distinction between the final prevalence and (i + 1) is equal to 1 then replace the final prevalence of the i-th character.
- Else return false.
- Else replace the final prevalence of i-th character within the Hash map as (i + 1).
- Return True after the loop is over.
Beneath is the implementation for the above strategy:
Time Complexity: O(N)
Auxiliary Area: O(N)