避免连续相同字母的最小删除代价

int minCost(string s, vector<int>& cost) {
    // 连续相同字符只剩cost最大的不删除
    const int N = s.size();
    int ans = 0, maxCost = 0;
    for (int i = 0; i < N; i++) {
        if (i > 0 && s[i] != s[i-1]) {
            ans -= maxCost;
            maxCost = 0;
        }
        maxCost = max(maxCost, cost[i]);
        ans += cost[i];
    }
    ans -= maxCost;
    return ans;
}