Description
https://leetcode.com/problems/count-substrings-with-only-one-distinct-letter/
Given a string s
, return the number of substrings that have only one distinct letter.
Example 1:
Input: s = "aaaba" Output: 8 Explanation: The substrings with one distinct letter are "aaa", "aa", "a", "b". "aaa" occurs 1 time. "aa" occurs 2 times. "a" occurs 4 times. "b" occurs 1 time. So the answer is 1 + 2 + 4 + 1 = 8.
Example 2:
Input: s = "aaaaaaaaaa" Output: 55
Constraints:
1 <= s.length <= 1000
s[i]
consists of only lowercase English letters.
Explanation
The simplest solution would be to check substrings and find those with only one distinct character.
Python Solution
class Solution:
def countLetters(self, S: str) -> int:
count = 0
for i in range(len(S)):
for j in range(i + 1, len(S) + 1):
sub = S[i:j]
sub_set = set(sub)
if len(sub_set) == 1:
count += 1
else:
break
return count
- Time Complexity: O(N).
- Space Complexity: O(N).