Problem Link

Description


Alice is attempting to type a specific string on her computer. However, she tends to be clumsy and may press a key for too long, resulting in a character being typed multiple times.

Although Alice tried to focus on her typing, she is aware that she may still have done this at most once.

You are given a string word, which represents the final output displayed on Alice's screen.

Return the total number of possible original strings that Alice might have intended to type.

Β 

Example 1:

Input: word = "abbcccc"

Output: 5

Explanation:

The possible strings are: "abbcccc", "abbccc", "abbcc", "abbc", and "abcccc".

Example 2:

Input: word = "abcd"

Output: 1

Explanation:

The only possible string is "abcd".

Example 3:

Input: word = "aaaa"

Output: 4

Β 

Constraints:

  • 1 <= word.length <= 100
  • word consists only of lowercase English letters.

Solution


Python3

class Solution:
    def possibleStringCount(self, word: str) -> int:
        N = len(word)
        res = 1
        count = 1
        prev = word[0]
 
        for i in range(1, N):
            if word[i] == prev:
                count += 1
                if count > 1:
                    res += 1
            else:
                count = 1
 
            prev = word[i]
        
        return res