湖南地稅局官網(wǎng)站水利建設(shè)基金什么軟件可以發(fā)布推廣信息
插: 前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站。
堅(jiān)持不懈,越努力越幸運(yùn),大家一起學(xué)習(xí)鴨~~~
給你一個(gè)字符串 s 和兩個(gè)整數(shù) x 和 y 。你可以執(zhí)行下面兩種操作任意次。
刪除子字符串 “ab” 并得到 x 分。
比方說,從 “cabxbae” 刪除 ab ,得到 “cxbae” 。
刪除子字符串"ba" 并得到 y 分。
比方說,從 “cabxbae” 刪除 ba ,得到 “cabxe” 。
請返回對(duì) s 字符串執(zhí)行上面操作若干次能得到的最大得分。
示例 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();}
}