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

Leetcode 3628. Maximum Number of Subsequences After One Inserting

  • Leetcode 3628. Maximum Number of Subsequences After One Inserting
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3628. Maximum Number of Subsequences After One Inserting

1. 解题思路

这一题思路上就是拆成两部分,首先就是考察当前所有的LCT字符串的个数,然后就是考察插入一个字符之后能够额外获取的LCT的最大个数是多少,两者相加即为我们最终的答案。

然后,首先关于原始LCT字符串的个数,我们只需要考察每一个字符C出现的位置前后各有多少个LT即可。

其次,关于如何考察插入任意字符之后能够获取的最大LCT字符串的增量,我们只需要分别考察在每一个位置上插入L, C, T三个字符之后的结果即可,而这三种方式带来的增量分别为:

  • 后续CT字符串的个数
  • 前后LT的字符个数的乘积
  • 前方LC字符串的个数

其中,一三两种结果可以通过累积数组进行获取,而第二种情况则直接前后根据第一步当中预先得到的结果计算即可。

2. 代码实现

给出python代码实现如下:

class Solution:def numOfSubsequences(self, s: str) -> int:n = len(s)cnt_T = [0 if ch != "T" else 1 for ch in s]cnt_CT = [0 for _ in s]for i in range(n-2, -1, -1):cnt_T[i] += cnt_T[i+1]if s[i] == "C":cnt_CT[i] = cnt_T[i+1] + cnt_CT[i+1]else:cnt_CT[i] = cnt_CT[i+1]cnt_L = [0 if ch != "L" else 1 for ch in s]cnt_LC = [0 for _ in s]for i in range(1, n):cnt_L[i] += cnt_L[i-1]if s[i] == "C":cnt_LC[i] = cnt_L[i-1] + cnt_LC[i-1]else:cnt_LC[i] = cnt_LC[i-1]ans, inc = 0, 0for i in range(n):if s[i] == "C":ans += cnt_L[i] * cnt_T[i]inc = max(inc, cnt_CT[i], cnt_LC[i], cnt_L[i] * cnt_T[i])return ans + inc

提交代码评测得到:耗时687ms,占用内存29.62MB。

http://www.dtcms.com/a/301738.html

相关文章:

  • mybatis-plus逻辑删除配置
  • 高可用集群KEEPALIVED实战解析
  • Gradio全解8——ChatInterfaceChatbot:聊天界面类与聊天机器人(2)——ChatInterface的自定义函数和界面
  • 芯片库和标准库寻找的方法
  • print(“\033[31m红\033[32m绿\033[34m蓝\033[0m默认色“)
  • 随机密码生成
  • Spring IOC 容器 **默认注册 Bean** 的 8 条规则
  • 网络服务综合项目
  • 数据结构基础内容(第七篇:堆、哈夫曼树)
  • SABR-Net
  • Linux 系统文件夹结构及用途说明
  • 《频率之光:共振之战》
  • 题解:CF1010C Border
  • Python异常处理:金融风控系统中的救命盾牌
  • Web开发系列-第13章 Vue3 + ElementPlus
  • 第十二讲:C++继承
  • 每日算法刷题Day55:7.27:leetcode 复习完第K小/大+栈4道题,用时1h50min
  • Datawhale 科大讯飞AI大赛(模型蒸馏)
  • 个人笔记HTML5
  • 聊聊回归测试的应对策略
  • selenium完整版一览
  • Spring Boot音乐服务器项目-删除音乐模块
  • Telerik 2025 Q2 Crack,Telerik Report Serve完整的解决方案
  • 腾讯云AI代码助手CodeBuddy开发指导
  • java小白闯关记第一天(两个数相加)
  • 第七章 状态管理
  • (LeetCode 每日一题) 2210. 统计数组中峰和谷的数量 (数组)
  • 通过阿里云服务器使用NPS实现外网访问本机服务
  • vulkan从小白到专家——YUV处理
  • 动态规划 (Dynamic Programming) 算法概念-JS示例