uacs2024

导航

leetcode 2606. 找到最大开销的子字符串

2606. 找到最大开销的子字符串

class Solution {
public:
    int maximumCostSubstring(string s, string chars, vector<int>& vals) {
        int size = s.size();
        vector<int> dp(size);

        auto found = chars.find(s[0]);
        if(found == string::npos)  dp[0] = s[0] - 'a' + 1;
        else  dp[0] = vals[found];

        int res = max(0,dp[0]);
        for(int i = 1;i < size;++i){
            int value;
            found = chars.find(s[i]);
            if(found == string::npos)  value = s[i] - 'a' + 1;
            else  value = vals[found];

            dp[i] = max(dp[i-1] + value,value);
            res = max(res,dp[i]);
        }
        return res;
    }
};

 

posted on 2024-12-30 16:02  ᶜʸᵃⁿ  阅读(7)  评论(0)    收藏  举报