给你一个长度为 n 的字符串 s 和一个整数数组 cost,其中 cost[i] 表示 删除 字符串 s 中第 i 个字符的代价。
你可以从字符串 s 中删除任意数量的字符(也可以不删除),使得最终的字符串 非空 且由 相同 字符组成。
返回实现上述目标所需的 最小 总删除代价。
示例 1:
输入: s = "aabaac", cost = [1,2,3,4,1,10]
输出: 11
解释:
删除索引为 0、1、2、3 和 4 的字符后,字符串变为 "c",它由相同的字符组成,总删除代价为:cost[0] + cost[1] + cost[2] + cost[3] + cost[4] = 1 + 2 + 3 + 4 + 1 = 11。
示例 2:
输入: s = "abc", cost = [10,5,8]
输出: 13
解释:
删除索引为 1 和 2 的字符后,字符串变为 "a",它由相同的字符组成,总删除代价为:cost[1] + cost[2] = 5 + 8 = 13。
示例 3:
输入: s = "zzzzz", cost = [67,67,67,67,67]
输出: 0
解释:
字符串 s 中的所有字符都相同,因此不需要删除字符,删除代价为 0。
提示:
n == s.length == cost.length1 <= n <= 1051 <= cost[i] <= 109s 仅由小写英文字母组成。