题意:
一个字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。
比方说,"abaacc" 的美丽值为 3 - 1 = 2 。
给你一个字符串 s ,请你返回它所有子字符串的 美丽值 之和。
数据范围:
1 <= s.length <= 500
s 只包含小写英文字母。
解法:
观察到数据只有500,
那么O(n^2)枚举所有子区间,统计答案即可.
code:
class Solution {
public:
int beautySum(string s) {
int n=s.size();
int ans=0;
for(int i=0;i<n;i++){
map<char,int>mp;
for(int j=i;j<n;j++){
mp[s[j]]++;
int ma=-1e9,mi=1e9;
for(auto p:mp){
ma=max(ma,p.second);
mi=min(mi,p.second);
}
ans+=ma-mi;
}
}
return ans;
}
};