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

2023-11-01

leetcode力扣刷题打卡

*题目:2207. 字符串中最多数目的子字符串
描述:给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包含小写英文字母。

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

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

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

思路:

1、最大子序列数只能是放text开头或者结尾;
2、放text开头相当于增加了 pattern[1]出现的次数;
3、放text结尾相当于增加了 pattern[0]出现的次数;
4、最后加上pattern[1] 、pattern[0]两者之中的较大值就是结果。

原代码##

class Solution {
public:
    long long maximumSubsequenceCount(string text, string pattern) {
        int n = text.size();
        long long ans = 0;
        int cnt0 = 0, cnt1 = 0;
        for (int i = 0; i < n; ++i) {
            if (text[i] == pattern[1]){
                ans += cnt0;
                cnt1++;
            }
            if (text[i] == pattern[0]) {
                cnt0++;
            }         
        }
        return ans + max(cnt0, cnt1);
    }
};

总结:

1、注意,两个if语句的顺序不能交换,因为可能会遇到 pattern[0] == pattern[1]这种特殊情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2207. 字符串中最多数目的子字符串 的相关文章

随机推荐

  • VBJSON报错:缺少:语句结束

    项目中使用JSON库VBJSON时报错 编译错误 缺少 语句结束 cJSONScript和cStringBuilder报相同的错误 都在第一行 VERSION 1 0 CLASS 研究了半天没啥结果 之前使用这个库的时候没有什么问题 所以判
  • Spring boot踩坑日记——ERROR c.n.d.s.t.d.RedirectingEurekaHttpClient - Request execution error

    eureka启动报错 2018 12 21 17 20 16 480 main ERROR c n d s t d RedirectingEurekaHttpClient Request execution error com sun je
  • https://github.com/qiangqiang666/demo

  • Apache Log4j2远程代码执行漏洞复现(CVE-2021-44228)-----记第一次反弹shell

    目录 靶场搭建 漏洞测试 漏洞利用 总结 靶场搭建 因为没有服务器所以只能在本地搭建 在虚拟机上拉取文件 git clone https github com vulhub vulhub git Vulhub Docker Compose
  • MariaDB安装教程

    注 从MariaDB 10 4 3开始 不再提供预构建的数据目录 并且用户需要运行mysql install db exe来创建数据目录 1 解压到自定义路径 E MariaDB mariadb 10 5 4 winx64 2 将其中的bi
  • java 类之间相互引用实例探索

    本文记录一下自己对类之间相互引用的探索 如有错误 希望不吝赐教 问题一 类之间相互引用依赖会不会引用死循环 不会 例如 A类中声明一个B类的引用 B类中也声明一个A类的引用 因为类之间的引用相当于指针 声明的时候不会分配对象 即使你在A构造
  • Windows下使用Redis(一)安装使用

    一 Redis 是什么 Redis 是一款依据BSD开源协议发行的高性能Key Value存储系统 cache and store 它通常被称为数据结构服务器 因为值 value 可以是 字符串 String 哈希 Map 列表 list
  • Error creating bean with name 'sessionFactory' defined in class path resource [...]

    已解决 spring hibernate 报错原因 applicationContext xml中没有引入实体映射文件 实体映射文件
  • 文盘 Rust -- tonic-Rust grpc 初体验

    gRPC 是开发中常用的开源高性能远程过程调用 RPC 框架 tonic 是基于 HTTP 2 的 gRPC 实现 专注于高性能 互操作性和灵活性 该库的创建是为了对 async await 提供一流的支持 并充当用 Rust 编写的生产系
  • Ceph运维存储 命令管理操作

    分布式存储运维操作 集群服务管理常用命令 统一节点上的ceph conf文件 将admin节点上修改的ceph conf 推送给所有其他节点 overwrite conf强制覆盖 ceph deploy overwrite conf con
  • C++常用头文件小结

    标准 C include
  • spring cloud 大大大大的坑。 Failed to start bean 'eurekaAutoServiceRegistration'

    先说明一下问题 我在做cloud 消费服务的时候 不是我做的我负责改而已 因我们boot 用的是1 5 4的发行版本 然后 cloud和boot的版本不一样又引入了解决的包 最后被我改回来 导致不能启动 在spring boot 中直接启动
  • 自动创建字符设备驱动的设备文件

    目录 问题描述 解决方案 udev 嵌入式中用的是mdev 相关函数 在调用device create前要先用class create创建一个类 Linux内核中有各种类 比如gpio rtc led等 类这个概念在Linux中被抽象成一种
  • SpringBoot默认包扫描机制及使用@ComponentScan指定扫描路径

    SpringBoot默认包扫描机制 标注了 Component和 Component的衍生注解如 Controller Service Repository就可以把当前的Bean加入到IOC容器中 那么SpringBoot是如何知道要去扫描
  • Java基础进阶--注解

    Java基础进阶 注解 什么是注解 元注解 Target Retention 注解的应用场景 APT IDE输入限定检查 字节码编码 注解与反射 什么是注解 注解就是一个标签 可以放在任何地方 一个类 一个方法 一个变量 都可以用注解来标注
  • 基于testNG的通用数据驱动-DataProvider

    上一篇有提过可以通过DataProvider做数据驱动 通过 Test dataProvider abc DataProvider name abc 来获取指定的测试数据 在缺点是测试数据需要保存在代码中 如果想从外部获取参数 需要一个通用
  • 预测性维护(2)

    预测性维护 应用开发 预测性维护 应用开发流程 数据获取 数据处理 特征提取 模型训练 模型部署 预测性维护 应用开发流程 预测性维护应用从开发流程而言 和标准的机器学习类应用有其相似性 通常而言包括如下的五步法 数据获取 数据处理 特征提
  • 分布式一致性协议——CAP Paxos Raft ZAB

    一致性算法 Paxos Raft ZAB 1 1 CAP理论 分布式系统的CAP理论 理论首先把分布式系统中的三个特性进行了如下归纳 一致性 C 在分布式系统中的所有数据备份 在同一时刻是否同样的值 等同于所有节点访问同一份最新的数据副本
  • hibernate框架入门

    1 在IDE中创建java项目 比较简单不再演示 2 创建source folder 命名为Hibernate3 在Hibernate下载文件中找到我们所需要的三个配置文件和所有jar包 拷贝所需jar文件 构建依赖包 3 提供hibern
  • 2207. 字符串中最多数目的子字符串

    leetcode力扣刷题打卡 题目 2207 字符串中最多数目的子字符串 描述 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern 两者都只包含小写英文字母 你可以在 text 中任意