网站建设公司推广方案,公司网站建设的普遍性,提供免费空间的网站,济源市网站建设插#xff1a; 前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈#xff0c;越努力越幸运#xff0c;大家一起学习鸭~~~ 给你一个字符串 s 和两个整数 x 和 y 。你可以执行下面… 插 前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。 坚持不懈越努力越幸运大家一起学习鸭~~~ 给你一个字符串 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 只包含小写英文字母。
java代码
class Solution {int points 0;public int maximumGain(String s, int x, int y) {if (x y) {s remove1(s, x);s remove2(s, y);} else {s remove2(s, y);s remove1(s, x);}return points;}public String remove1(String s, int x) {StringBuffer sb new StringBuffer();int length s.length();int index 0;for (int i 0; i length; i) {char c s.charAt(i);if (index 0 c b sb.charAt(index - 1) a) {points x;sb.deleteCharAt(index - 1);index--;} else {sb.append(c);index;}}return sb.toString();}public String remove2(String s, int y) {StringBuffer sb new StringBuffer();int length s.length();int index 0;for (int i 0; i length; i) {char c s.charAt(i);if (index 0 c a sb.charAt(index - 1) b) {points y;sb.deleteCharAt(index - 1);index--;} else {sb.append(c);index;}}return sb.toString();}
}