跳到主要内容

3144.分割字符频率相等的最少子字符串

链接:3144.分割字符频率相等的最少子字符串
难度:Medium
标签:哈希表、字符串、动态规划、计数
简介:请你返回 s 最少 能分割成多少个平衡子字符串。

题解 1 - python

  • 编辑时间:2024-08-28
  • 执行用时:9615ms
  • 内存消耗:16.46MB
  • 编程语言:python
  • 解法介绍:dp[i]表示以i字符结尾时的最少分割数
class Solution:
def minimumSubstringsInPartition(self, s: str) -> int:
n = len(s)
dp = [inf] * (n + 1)
dp[0] = 0
for i in range(1, n + 1):
dp[i] = dp[i - 1] + 1
counter = Counter()
for j in range(i, 0, -1):
counter[s[j - 1]] += 1
if len(set(counter.values())) == 1:
dp[i] = min(dp[i], dp[j - 1] + 1)
return dp[-1]