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

LeetCode:2207. 字符串中最多数目的子序列(Java)

目录

2207. 字符串中最多数目的子序列

题目描述:

实现代码与解析:

遍历:

原理思路:


2207. 字符串中最多数目的子序列

题目描述:

        给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母。

你可以在 text 中任意位置插入 一个 字符,这个插入的字符必须是 pattern[0] 或者 pattern[1] 。注意,这个字符可以插入在 text 开头或者结尾的位置。

请你返回插入一个字符后,text 中最多包含多少个等于 pattern 的 子序列 。

子序列 指的是将一个字符串删除若干个字符后(也可以不删除),剩余字符保持原本顺序得到的字符串。

示例 1:

输入:text = "abdcdbc", pattern = "ac"
输出:4
解释:
如果我们在 text[1] 和 text[2] 之间添加 pattern[0] = 'a' ,那么我们得到 "abadcdbc" 。那么 "ac" 作为子序列出现 4 次。
其他得到 4 个 "ac" 子序列的方案还有 "aabdcdbc" 和 "abdacdbc" 。
但是,"abdcadbc" ,"abdccdbc" 和 "abdcdbcc" 这些字符串虽然是可行的插入方案,但是只出现了 3 次 "ac" 子序列,所以不是最优解。
可以证明插入一个字符后,无法得到超过 4 个 "ac" 子序列。

示例 2:

输入:text = "aabb", pattern = "ab"
输出:6
解释:
可以得到 6 个 "ab" 子序列的部分方案为 "aaabb" ,"aaabb" 和 "aabbb" 。

提示:

  • 1 <= text.length <= 105
  • pattern.length == 2
  • text 和 pattern 都只包含小写英文字母。

实现代码与解析:

遍历:

class Solution {public long maximumSubsequenceCount(String text, String pattern) {int n = text.length();long res = 0;int cnt0 = 0;int cnt1 = 0;for (int i = 0; i < n; i++) {if (text.charAt(i) == pattern.charAt(1)) {cnt1++;res += cnt0;}if (text.charAt(i) == pattern.charAt(0)) {cnt0++;}}return res += Math.max(cnt0, cnt1);}
}

原理思路:

        遍历,直到遇到p[1]那么就可以和前面的p[0]构成子序列,res直接加上前面的p[0]的数量即可。

        最后插入一个字符,看是p[0]多还是p[1]多加上即可,放在前面或者后面构成子序列。

        注意点:if要先判断p[1],因为有可能p字符串是aa这种重复字符构成的,res要加上。

相关文章:

LeetCode:2207. 字符串中最多数目的子序列(Java)

目录 2207. 字符串中最多数目的子序列 题目描述&#xff1a; 实现代码与解析&#xff1a; 遍历&#xff1a; 原理思路&#xff1a; 2207. 字符串中最多数目的子序列 题目描述&#xff1a; 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 p…...

win10开机自启动方案总汇

win10开机自启动方案总汇 一、开始文件目录添加二、添加注册表启动程序三、服务启动3.1. 将程序注册为服务使用命令行创建服务设置服务启动类型启动服务 3.2. 使用 Windows 服务管理器配置服务3.3. 删除服务 四、定时任务或程序4.1 设置程序自启动&#xff08;使用任务计划程序…...

【自动驾驶】基于车辆几何模型的横向控制算法 | Stanley 算法详解与编程实现

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…...

微服务--初识MQ

在微服务架构中&#xff0c;MQ&#xff08;Message Queue&#xff0c;消息队列&#xff09;作为一种重要的通信机制&#xff0c;扮演着至关重要的角色。 MQ&#xff0c;即消息队列&#xff0c;是一种在不同服务或系统之间传递消息的中间件。它允许消息的发送者&#xff08;生产…...

车辆识别数据集,图片数量20500,模型已训练200轮

车辆识别数据集&#xff08;Vehicle Recognition Dataset, VDRD&#xff09; 摘要 VDRD 是一个专为车辆识别设计的大规模数据集&#xff0c;它包含了20500张不同类型的汽车、货车、公交车以及其他类型车辆的图像。数据集提供了四种车辆类别&#xff1a;汽车、货车、其他车辆和…...

MES系统如何提升制造企业的运营效率和灵活性

参考拓展&#xff1a;苏州稳联-西门子MES系统-赋能智能制造的核心引擎 制造执行系统(MES)在提升制造企业运营效率和灵活性方面发挥着关键作用。 一、MES系统的基本概念和功能 MES系统是连接企业管理层与生产现场的重要桥梁。它主要负责生产调度、资源管理、质量控制等多个方…...

Nexpose 6.6.270 发布下载,新增功能概览

Nexpose 6.6.270 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Sep 18, 2024 请访问原文链接&#xff1a;https://sysin.org/blog/nexpose-6/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.or…...

【数据库】sqlite

文章目录 1. 基本概述2. 主要特点3. 应用场景4. 优缺点5. 基本使用示例6. 在编程语言中的使用连接到 SQLite 数据库&#xff08;如果文件不存在会自动创建&#xff09;创建表插入数据提交事务查询数据关闭连接 7. 总结 SQLite 是一个轻量级的关系型数据库管理系统&#xff08;R…...

详解 C++中的模板

目录 前言 一、函数模板 1.定义 2.函数模板的实现 3.模板函数的实例化 4.模板参数的省略 1.函数模板的实参推导 2.类模板的实参推导 3.默认模板参数 4.特殊情况:无法推导的模板 5.推导失败的情况 二、类模板 1.概念和定义 2.类模板定义 3.类模板的使用 4.类模板…...

基于DAMODEL——Faster-RCNN 训练与测试指南

Faster-RCNN 训练与测试指南 前言 今天我们要来实现一个经典的目标检测模型&#xff1a;Faster-Rcnn。我们使用DAMODEL云平台来实现&#xff0c;这是个很强大的云端平台&#xff0c;功能众多&#xff0c;你可以投你所好去进行你想做的事情。 1. 环境与工具准备 1.1 远程连接…...

考研数据结构——C语言实现冒泡排序

冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的列表&#xff0c;比较每对相邻元素&#xff0c;并在顺序错误的情况下交换它们。这个过程重复进行&#xff0c;直到没有需要交换的元素&#xff0c;这意味着列表已经排序完成。冒泡排序的名字来源于较小的元素会逐…...

labview更换操作系统后打开原VI闪退

labview更换操作系统后打开原VI闪退 问题描述&#xff1a; Windows11由家庭版更换为专业版后&#xff0c;重新安装labview2021&#xff0c;打开原来的项目&#xff0c;项目管理器可以正常打开&#xff0c;但是打开VI却闪退&#xff0c;并报错如下 出现这种原因主要是labview在…...

什么是CAPTCHA?有什么用途?

一、CAPTCHA 的工作原理 CAPTCHA的核心目的是通过呈现人类可以轻松理解但计算机程序难以解决的任务&#xff0c;来阻止恶意的自动化工具。传统的CAPTCHA通过展示扭曲或模糊的文字、图片或者点击操作等&#xff0c;要求用户完成验证任务。这些任务通常需要视觉、听觉或简单的逻辑…...

在虚幻引擎中创建毛发/头发

在虚幻引擎中创建毛发/头发 , 首先开启两个插件 Groom 和 Alembic Groom Importer 打开蒙皮缓存 导出人物模型 将人物导入Blender , 选择需要种植头发的点 指定并选择 点击毛发 这里变成爆炸头了 , 把数量和长度调一下 切换到梳子模式 调整发型 导出为abc , 文件路径不…...

PHP API 框架:构建高效API的利器【电商API接口】

在当今快速发展的互联网时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为连接不同应用程序和服务的关键。PHP&#xff0c;作为一种流行的服务器端脚本语言&#xff0c;提供了多种强大的框架来简化API的开发。本文将介绍PHP API框架的重要性&#xff0c;以及…...

transformer模型写诗词

加入会员社群&#xff0c;免费获取本项目数据集和代码&#xff1a;点击进入>> 1. 项目简介 该项目是基于A035-transformer模型的诗词生成系统&#xff0c;旨在通过深度学习技术实现古诗词的自动化创作。项目的背景源自当前自然语言处理领域的迅速发展&#xff0c;特别是…...

[大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理

[大语言模型-工程实践] 手把手教你-基于Ollama搭建本地个人智能AI助理 Note: 草稿优化中&#xff0c;持续更新&#xff0c;相关代码将统一提供出来~ 1. Ollama简介 Ollama 是一个用于在本地环境中运行和定制大型语言模型的工具。它提供了一个简单而高效的接口&#xff0c;用于…...

开放原子开源基金会OPENATOM

AtomGit_开放原子开源基金会代码托管平台-AtomGit 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构&#xff0c;于 2020 年 6 月在北京成立&#xff0c;由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。 精选项目&#xff1a; 比…...

Docker的监控:docker stats与docker events

Docker的监控:docker stats与docker events 1. 使用`docker stats`监控资源2. 使用`docker events`监控活动3、建议💖The Begin💖点点关注,收藏不迷路💖 Docker提供了docker stats和docker events两个简单而强大的工具来帮助我们监控容器。 1. 使用docker stats监控资…...

jvm专题 之 内存模型

文章目录 前言一个java对象的运行过程jvm内存分布程序的基本运行程序什么是对象&#xff1f;对象与类的关系&#xff1f;由类创建对象的顺序 前言 一个程序需要运行&#xff0c;需要在内存中开辟一块空间类是构建对象的模板&#xff0c;只有类加载到内存中才能创建对象 一个j…...

OpenClaw多任务队列:GLM-4.7-Flash并行处理邮件整理与文档生成

OpenClaw多任务队列&#xff1a;GLM-4.7-Flash并行处理邮件整理与文档生成 1. 为什么需要多任务队列 上周五下午&#xff0c;我同时面临三个紧急任务&#xff1a;整理客户邮件、生成季度报告草稿、汇总项目会议纪要。手动切换不同工具时&#xff0c;不仅效率低下&#xff0c;…...

InfiniTime智能手表固件完全指南:从零开始打造你的开源智能手表

InfiniTime智能手表固件完全指南&#xff1a;从零开始打造你的开源智能手表 【免费下载链接】InfiniTime Firmware for Pinetime smartwatch written in C and based on FreeRTOS 项目地址: https://gitcode.com/gh_mirrors/in/InfiniTime InfiniTime是一款为Pinetime智…...

嵌入式按键事件处理框架:高可靠消抖与复合操作状态机

1. Button库深度解析&#xff1a;面向嵌入式系统的高可靠性按键事件处理框架1.1 设计定位与工程价值Button库并非简单的GPIO电平读取封装&#xff0c;而是一个面向工业级嵌入式应用的状态感知型按键事件引擎。其核心设计目标是解决传统按键处理中长期存在的三大工程痛点&#x…...

OpenClaw技能扩展:GLM-4.7-Flash驱动Markdown文档自动整理

OpenClaw技能扩展&#xff1a;GLM-4.7-Flash驱动Markdown文档自动整理 1. 为什么需要文档自动化整理 作为一个长期使用Markdown写作的技术博主&#xff0c;我的文档目录早已变成了"数字坟场"。上周试图寻找半年前写的Docker网络配置笔记时&#xff0c;面对notes_20…...

Druid监控界面安全加固实战:从暴露风险到生产级防护

1. Druid监控界面暴露风险全景扫描 上周帮客户做安全审计时&#xff0c;发现他们的订单系统监控页面居然能直接通过公网IP访问&#xff0c;打开/druid/index.html就能看到所有SQL执行记录和会话信息。这种场景太典型了——很多团队在开发阶段为了方便调试&#xff0c;把Druid监…...

RTX4090D加持下的OpenClaw:Qwen3-32B多任务并行处理实测

RTX4090D加持下的OpenClaw&#xff1a;Qwen3-32B多任务并行处理实测 1. 测试背景与硬件配置 去年底我入手了RTX4090D显卡&#xff0c;一直想找个机会测试它在AI工作负载下的真实表现。最近在部署OpenClaw时&#xff0c;发现其多任务调度能力对显存和计算资源的需求极高&#…...

模块化生产体系:戴森球计划从工厂到星系的进阶指南

模块化生产体系&#xff1a;戴森球计划从工厂到星系的进阶指南 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在戴森球计划的宇宙探索中&#xff0c;高效的生产体系是从母…...

霍尔电流传感器原理与应用全解析

霍尔电流传感器测量原理深度解析 1. 霍尔效应电流测量基础 1.1 霍尔效应原理 霍尔效应是电流测量的基础物理现象&#xff0c;当导体或半导体薄片置于磁场中&#xff0c;并在其两端施加控制电流时&#xff0c;垂直于电流和磁场方向的两侧会产生电势差&#xff0c;这种现象称为…...

化学信息学避坑指南:RDKit分子数据解析的7个常见错误与解决方案

RDKit分子数据处理实战&#xff1a;7个高频错误排查与性能优化指南 在药物研发和材料科学领域&#xff0c;RDKit作为化学信息学的瑞士军刀&#xff0c;每天处理着数以百万计的分子结构数据。但当你在凌晨三点调试代码时&#xff0c;一个不起眼的PDB文件编码错误可能让整个分析流…...

突破限制:跨平台VMware macOS虚拟机部署全指南——非苹果硬件的macOS体验方案

突破限制&#xff1a;跨平台VMware macOS虚拟机部署全指南——非苹果硬件的macOS体验方案 【免费下载链接】unlocker VMware macOS utilities 项目地址: https://gitcode.com/gh_mirrors/unl/unlocker Unlocker是一款针对VMware Workstation和Player的开源补丁工具&…...