Happy New Year - Frequency Count
Happy 2026. First problem is a medium difficulty, just use frequency count (hint is that we're dealing only with lowercase letters). Also make sure to use long to avoid overflow. Code is down below, cheers, ACC.
Minimum Deletion Cost to Make All Characters Equal - LeetCode
You are given a string s of length n and an integer array cost of the same length, where cost[i] is the cost to delete the ith character of s.
You may delete any number of characters from s (possibly none), such that the resulting string is non-empty and consists of equal characters.
Return an integer denoting the minimum total deletion cost required.
Example 1:
Input: s = "aabaac", cost = [1,2,3,4,1,10]
Output: 11
Explanation:
Deleting the characters at indices 0, 1, 2, 3, 4 results in the string "c", which consists of equal characters, and the total cost is cost[0] + cost[1] + cost[2] + cost[3] + cost[4] = 1 + 2 + 3 + 4 + 1 = 11.
Example 2:
Input: s = "abc", cost = [10,5,8]
Output: 13
Explanation:
Deleting the characters at indices 1 and 2 results in the string "a", which consists of equal characters, and the total cost is cost[1] + cost[2] = 5 + 8 = 13.
Example 3:
Input: s = "zzzzz", cost = [67,67,67,67,67]
Output: 0
Explanation:
All characters in s are equal, so the deletion cost is 0.
Constraints:
n == s.length == cost.length1 <= n <= 1051 <= cost[i] <= 109sconsists of lowercase English letters.
public class Solution {
public long MinCost(string s, int[] cost)
{
long[] totalCostPerChar = new long[26];
long totalCost = 0;
for (int i = 0; i < s.Length; i++)
{
totalCost+= cost[i];
totalCostPerChar[(int)(s[i] - 'a')] += cost[i];
}
return totalCost - totalCostPerChar.Max();
}
}

Comments
Post a Comment