LeetCode 1759. Count Number of Homogenous Substrings Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
1759. Count Number of Homogenous Substrings

Description

Given a string s, return the number of homogenous substrings of s. Since the answer may be too large, return it modulo 109 + 7.

A string is homogenous if all the characters of the string are the same.

A substring is a contiguous sequence of characters within a string.

 

Example 1:

Input: s = "abbcccaa"
Output: 13
Explanation: The homogenous substrings are listed as below:
"a"   appears 3 times.
"aa"  appears 1 time.
"b"   appears 2 times.
"bb"  appears 1 time.
"c"   appears 3 times.
"cc"  appears 2 times.
"ccc" appears 1 time.
3 + 1 + 2 + 1 + 3 + 2 + 1 = 13.

Example 2:

Input: s = "xy"
Output: 2
Explanation: The homogenous substrings are "x" and "y".

Example 3:

Input: s = "zzzzz"
Output: 15

 

Constraints:

  • 1 <= s.length <= 105
  • s consists of lowercase letters.

Solutions

Solution 1

PythonJavaC++GoTypeScriptRustC#C
class Solution: def countHomogenous(self, s: str) -> int: mod = 10**9 + 7 i, n = 0, len(s) ans = 0 while i < n: j = i while j < n and s[j] == s[i]: j += 1 cnt = j - i ans += (1 + cnt) * cnt // 2 ans %= mod i = j return ans(code-box)

Solution 2

PythonJavaC++Go
class Solution: def countHomogenous(self, s: str) -> int: mod = 10**9 + 7 ans = cnt = 1 for a, b in pairwise(s): cnt = cnt + 1 if a == b else 1 ans = (ans + cnt) % mod return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !