1717. 删除子字符串的最大得分
题目链接:1717. 删除子字符串的最大得分
代码如下:
class Solution {
public:
int maximumGain(string s, int x, int y) {
return x > y ? getMax(s, 'a', 'b', x, y) : getMax(s, 'b', 'a', y, x);
}
private:
int getMax(string s, char a, char b, int x, int y) {
int c1 = 0, c2 = 0;
int res = 0;
s += "c";
for (char c : s) {
if (c == a) {
c1++;
}
else if (c == b) {
if (c1 == 0) {
c2++;
}
else {
res += x;
c1--;
}
}
else {
res += (y * min(c1, c2));
c1 = 0, c2 = 0;
}
}
return res;
}
};