当前位置: 首页 > 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.lryc.cn/news/601866.html

相关文章:

  • rust- 定义模块以控制作用域和隐私
  • 握手未来,PostgreSQL认证专家
  • 【I】题目解析
  • Spring AI 学习笔记
  • 小架构step系列27:Hibernate提供的validator
  • 「mysql」Mac osx彻底删除mysql
  • Java面试宝典:MySQL性能优化
  • uart通信
  • JVM类加载机制全流程详解
  • 从MySQL的information_schema系统数据库中获取表的元数据信息
  • MySQL - 索引(B+树)
  • Cgroup 控制组学习(三)在容器中使用 CGroups
  • MySQL - 主从复制与读写分离
  • Cline与Cursor深度实战指南:AI编程助手的革命性应用
  • 基于CNN图像特征提取流程(简化版)
  • Linux实战:从零搭建基于LNMP+NFS+DNS的WordPress博客系统
  • Flink窗口:解锁流计算的秘密武器
  • QT---概览
  • 使用frp实现免费内网穿透
  • Triton Shared编译
  • 【前后端】node mock.js+json-server
  • LeetCode Hot 100 括号生成
  • 力扣热题100----------41.缺少的第一个正数
  • NodeJs接入腾讯云存储COS
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 解析json异常, ObjectMapper注册的问题
  • 生成式召回-TIGER范式
  • BUG记录——Request接传Json数据中文乱码
  • C语言——————学习笔记(自己看)
  • Oracle 19C RU 19.28 升级和安装