3144. 分割字符频率相等的最少子字符串
代码如下:
class Solution
{
public:
int minimumSubstringsInPartition(string s)
{
vector<int> dp(s.size()+1,INT32_MAX);
unordered_map<char,int> occ_cnt;//用于存储每种字符出现的次数
dp[0]=0;
for(int i=1;i<=s.size();i++)
{
int max_cnt=0;
occ_cnt.clear();
for(int j=i;j>=1;j--)
{
occ_cnt[s[j-1]]++;
max_cnt=max(max_cnt,occ_cnt[s[j-1]]);
if(max_cnt*occ_cnt.size()==(i-j+1)&&dp[j-1]!=INT32_MAX)
{
dp[i]=min(dp[i],dp[j-1]+1);
}
}
}
return dp[s.size()];
}
};