如何查看网站开发语言,百度用户服务中心投诉电话,免费个人主页网站,九江做网站公司文章目录1. 题目2. 解题374 / 1631#xff0c;前22.9%1215 / 7873#xff0c;前15.4%1. 题目
给你一个字符串 s 和两个整数 x 和 y 。你可以执行下面两种操作任意次。
删除子字符串 ab 并得到 x 分。 比方说#xff0c;从 “cabxbae” 删除 ab #xff0c;得…
文章目录1. 题目2. 解题374 / 1631前22.9%1215 / 7873前15.4%1. 题目
给你一个字符串 s 和两个整数 x 和 y 。你可以执行下面两种操作任意次。
删除子字符串 ab 并得到 x 分。 比方说从 “cabxbae” 删除 ab 得到 “cxbae” 。删除子字符串ba 并得到 y 分。 比方说从 “cabxbae” 删除 ba 得到 “cabxe” 。
请返回对 s 字符串执行上面操作若干次能得到的最大得分。
示例 1
输入s cdbcbbaaabab, x 4, y 5
输出19
解释
- 删除 cdbcbbaaabab 中加粗的 ba 得到 s cdbcbbaaab 加 5 分。
- 删除 cdbcbbaaab 中加粗的 ab 得到 s cdbcbbaa 加 4 分。
- 删除 cdbcbbaa 中加粗的 ba 得到 s cdbcba 加 5 分。
- 删除 cdbcba 中加粗的 ba 得到 s cdbc 加 5 分。
总得分为 5 4 5 5 19 。示例 2
输入s aabbaaxybbaabb, x 5, y 4
输出20提示
1 s.length 10^5
1 x, y 10^4
s 只包含小写英文字母。来源力扣LeetCode 链接https://leetcode-cn.com/problems/maximum-score-from-removing-substrings 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
class Solution {
public:int maximumGain(string s, int x, int y) {int ans 0;s.push_back(-); // 方便代码处理int a 0, b 0;for(int i 0; i s.length(); i) {if(s[i] ! a s[i] ! b){ // 其他字符截断了if(a b)//剩余的可以用较小的ans min(x,y)*min(a, b);a b 0;}else{if(s[i] a) a;else if(s[i] b) b;if(a s[i]b x y)// ab 优先ans x, a--, b--;else if(s[i]a b x y) // ba优先ans y, a--,b--;}}return ans;}
};108 ms 19.7 MB C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步