b_lc_所有子字符串美丽值之和(26*前缀和而已)
字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。
比方说,"abaacc" 的美丽值为 3 - 1 = 2 。
给你一个字符串 s ,请你返回它所有子字符串的 美丽值 之和。
思路:无
const int N=505;
class Solution {
public:
int f[N][26];
int beautySum(string s) {
int n = s.size(), ans = 0;
for (int i=1; i<=n; i++) f[i][s[i-1]-'a']++;
for (int i=1; i<=n; i++)
for (int j=0; j<26; j++)
f[i][j] += f[i-1][j];
for (int i=1; i<n; i++)
for (int j=i+1; j<=n; j++) {
int mx = 0, mi = n;
for (int k=0; k<26; k++) {
int c = f[j][k]-f[i-1][k];
if (c == 0) continue;
if (c > mx) mx = c;
if (c > 0 && c < mi) mi = c;
}
ans += mx - mi;
}
return ans;
}
};