classSolution: defbeautySum(self, s: str) -> int: # two for loop # 1. Substring's left # 2. Substring's right # if Max - Min != 0, ans += Max - Min # counting Max and Min
n = len(s) ans = 0 for l inrange(0, n - 2): count = [0] * 26 for r inrange(l, n): idx = ord(s[r]) - ord('a') count[idx] += 1 Max = -inf Min = inf for x in count: if x == 0: continue Max = x if x > Max else Max Min = x if x < Min else Min ans += Max - Min return ans
classSolution { public: intbeautySum(string s){ int n = s.size(); int ans = 0; for (int l = 0; l < n - 2; ++l){ int count[26] = {0}; for (int r = l; r < n; ++r){ int idx = s[r] - 'a'; ++count[idx]; int Max = INT_MIN; int Min = INT_MAX; for (int x: count){ if (x == 0) continue; Max = max(Max, x); Min = min(Min, x); } ans += Max - Min; } } return ans; } };
funcbeautySum(s string)int { var n int = len(s) var res int =0 for i:=0;i<n;i++{ countVec := make([]int,26) for j:=i;j<n;j++{ index := int(s[j]-'a') countVec[index]++ minVal := math.MaxInt32 maxVal := math.MinInt32 for k:=0;k<26;k++{ if countVec[k]==0{ continue } minVal=min(minVal,countVec[k]) maxVal=max(maxVal,countVec[k]) } res+=maxVal-minVal } } return res } funcmin(a int,b int)int{ if a<b{ return a } return b } funcmax(a int, b int)int { if a>b{ return a } return b }