1、题干
一个字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。
- 比方说,
"abaacc"
的美丽值为3 - 1 = 2
。
给你一个字符串 s
,请你返回它所有子字符串的 美丽值 之和。
示例 1:
输入:s = "aabcb"
输出:5
解释:美丽值不为零的字符串包括 ["aab","aabc","aabcb","abcb","bcb"] ,每一个字符串的美丽值都为 1 。
示例 2:
输入:s = "aabcbaa"
输出:17
提示:
1 <= s.length <= 500
s
只包含小写英文字母。
Problem: 1781. 所有子字符串美丽值之和
2、思路
枚举所有子串,累计所有美丽值
没想到官解也是暴力枚举,甚至没有优化
3、Code
function beautySum(s: string): number {
let ans = 0, chars = new Array(26).fill(0);
for (let i = 0; i < s.length; i++) {
chars[s.charCodeAt(i) - 97] += 1;
const counts = [...chars];
for (let j = 0; j < i - 1; j++) {
let max = 1, min = s.length;
for (const c of counts) {
if (c > max) max = c;
if (c && c < min) min = c;
}
ans += max - min;
counts[s.charCodeAt(j) - 97] -= 1;
}
}
return ans;
}
4、复杂度
- 时间复杂度:,
- 空间复杂度: