当前位置: 首页 > news >正文

【算法题】1717. 删除子字符串的最大得分

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
坚持不懈,越努力越幸运,大家一起学习鸭~~~
给你一个字符串 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();}
}
http://www.lryc.cn/news/92113.html

相关文章:

  • Codeforces Round 877 (Div. 2) ABCD
  • easyExcel导入失败提示用户第几行有误并回滚数据
  • 问道价值互联网,区块链的下一个十年 | 2023 开放原子全球开源峰会区块链分论坛即将启幕
  • 解读 Nginx 配置
  • 知识变现海哥:课程定价容易出现的三大误区
  • Android开发 LogDog (日志狗)V2.0.0
  • JavaScript break
  • linux服务器使用curl命令处理常用es查询
  • Office Visio 2013安装
  • C++ 私有析构函数的作用
  • 【C++】deque的用法
  • Live800:智能客服有哪些未来发展趋势?
  • 【一】Java SE 基础
  • Linux防火墙学习笔记2
  • Linux下MongDB定时备份方案
  • 长尾词挖掘,长尾词的优化方法有哪些
  • JUC基础-0601
  • bash特性
  • [Flink] Flink On Yarn(yarn-session.sh)启动错误
  • 玩转css逐帧动画,努力成为更优质的Ikun~
  • Linux Capabilities
  • 【自制C++深度学习框架】前言
  • 【高危】泛微 e-cology9 存在任意用户登录漏洞
  • 1TB文本的实时全文检索系统搭建
  • RHCA---DO477---变量实验
  • 毕业生高频常用材料线上签,高校毕业季契约锁电子签章一站式助力
  • .ini配置文件介绍与解析库使用
  • 牛客网Linux错题七
  • 牛课刷题Day5(编程题)
  • javascript基础二十五:说说你对函数式编程的理解?优缺点?