strstr 函数用于在主字符串中查找子字符串的首次出现位置,以下是高效的实现方案:

 

KMP算法优化版本

 

#include <iostream>

#include <string>

#include <vector>

using namespace std;

 

// 计算KMP算法的部分匹配表(PMT)

vector<int> getNext(const string& pattern) {

    int m = pattern.length();

    vector<int> next(m, 0);

    

    for (int i = 1, j = 0; i < m; ) {

        if (pattern[i] == pattern[j]) {

            next[i++] = ++j;

        } else if (j > 0) {

            j = next[j - 1];

        } else {

            next[i++] = 0;

        }

    }

    return next;

}

 

// KMP算法实现strstr

const char* myStrstr(const char* haystack, const char* needle) {

    if (!ha

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85352.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85352.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85352.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统网络服务模块一SSH带外管理概述

前言&#xff1a; 在复杂的网络运维环境中&#xff0c;​SSH带外管理&#xff08;Out-of-Band Management&#xff09;​​ 是确保系统高可用性的核心技术手段。区别于依赖业务网络的“带内管理”&#xff0c;带外管理通过独立物理通道​&#xff08;如专用管理网口或串…

org.springframework.cloud.gateway 组件解释

org.springframework.cloud.gateway 是 Spring Cloud 生态系统中的一个新一代的、功能强大的 API 网关。 1. 什么是 API 网关 (API Gateway)&#xff1f; 在讲解 Spring Cloud Gateway 之前&#xff0c;我们先要理解它扮演的角色——API 网关。 在一个微服务架构中&#xff0…

linux ollama 下载安装

linux ollama 下载安装 ollama 下载地址ollama 手动安装解决找不到命令的问题升级[gcc](https://so.csdn.net/so/search?qgcc&spm1001.2101.3001.7020)Centos7 停止维护之后 [升级gcc||找不到devtoolset-8-gcc* 问题解决方案](https://www.cnblogs.com/Jedi-Pz/p/18447117…

2025 渗透工具:【中国蚁剑】连接一句话MUA文件 远控虚拟机靶机

温馨提示&#xff1a; 本程序仅作为虚拟机测试环境使用&#xff0c;请勿用于任何不当用途。使用即表示您同意自行承担可能产生的所有责任。 一、场景复现 1、PhpMystudy软件启动网页模拟靶机 小皮面板(phpstudy) - 让天下没有难配的服务器环境&#xff01; 2、开启apache 3、…

Datawhale 网络爬虫技术入门第2次笔记

正则表达式 正则表达式&#xff08;Regular Expression&#xff09;&#xff0c;⼀种使⽤表达式的⽅式对字符串进⾏匹配的语法规则。 正则的语法&#xff1a;使⽤元字符进⾏排列组合来匹配字符串。 在线测试正则表达式&#xff1a;在线正则表达式测试OSCHINA.NET在线工具,os…

详解Redis的集群模式(主从复制、哨兵与Cluster)

一、主从复制 (Master-Slave Replication) 1. 基本概念 主从复制是Redis最简单的集群模式&#xff0c;由一个主节点(Master)和一个或多个从节点(Slave)组成。 2. 工作原理 数据同步&#xff1a;从节点启动时会向主节点发送SYNC命令&#xff0c;主节点执行BGSAVE生成RDB文件并…

如何使用 Airtest 对 Flutter 和 Unity 应用进行UI自动化测试

使用 Airtest 进行 Flutter/Unity UI 自动化测试终极指南 一、 核心原理&#xff1a;为什么 Airtest 能行&#xff1f; 要理解如何用&#xff0c;先要明白其原理。Airtest 采取了“两条腿走路”的策略&#xff0c;这正是它能通吃各种UI技术的关键。 第一条腿&#xff1a;基于…

河马剧场多部自制剧霸榜,短剧精品化战略持续推进

临近暑期&#xff0c;短剧市场热度逐渐攀升。近期&#xff0c;DataEye发布6月9日—6月15日微短剧热力榜显示河马剧场以8部作品占据TOP30近三分之一席位&#xff0c;前三名中更是占据2个席位&#xff0c;以题材多元化、用户覆盖广、数据爆发力强的特点引领行业风向。其中&#x…

幂级数 (0,R); R ;(R,+oo)

很好&#xff0c;我们现在来回答你问的这个问题&#xff1a; &#x1f7e0; 幂级数在收敛半径 R R R 以外会发生什么&#xff1f; 我们考虑一个一般形式的幂级数&#xff1a; ∑ n 0 ∞ a n ( x − x 0 ) n \sum_{n0}^{\infty} a_n (x - x_0)^n n0∑∞​an​(x−x0​)n 它的…

C#学习13——正则表达式

一、正则表达式 是一种匹配输入文本的模式&#xff0c;是由特殊字符组成&#xff0c;用于匹配字符串中的字符组合。 二、正则表达式有哪些&#xff1f; 1.Regex 类&#xff08;引入System.Text.RegularExpressions;&#xff09; Regex 类用于表示一个正则表达式。 1&#…

【Redis】持久化机制:RDB / AOF 的应用与场景

文章目录 Redis 持久化一、RDB1.1 说明1.2 触发机制手动触发自动触发 1.3 流程说明1.4 文件处理1.5 优缺点 & 适用场景 二、AOF2.1 说明2.2 使用 AOF2.3 命令写入2.4 文件同步2.5 重写机制2.6 启动时数据恢复2.7 优缺点 & 适用场景 三、不使用 AOF / RDB 的情况3.1 场景…

Python 企业级开发与DevOps实践

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 大型项目结构与设计模式 项目结构规范 text 复制 下载 enterprise_app/ ├── docs/ # 项目文档 ├── tests/ # 测试代码 │ ├── unit/ …

E结构体基础.go

前言&#xff1a;结构体是一种用户自定义的数据类型&#xff0c;它可以将多个不同类型的数据整合在一起&#xff0c;形成一个有机的整体。这就好比在现实生活中&#xff0c;我们有各种各样的物品&#xff0c;它们各自有不同的属性和用途&#xff0c;而结构体就像是一个收纳箱&a…

Spring @Autowired 依赖注入全解析

Autowired 是 Spring 框架中实现依赖注入的核心注解&#xff0c;其自动装配过程可分为以下步骤&#xff0c;结合了类型匹配、名称解析和容器协作机制&#xff1a; 1. 组件扫描与 Bean 定义注册 扫描阶段&#xff1a;Spring 容器启动时&#xff0c;通过 ComponentScan 或 XML 配…

将git的普通目录用idea初始化为maven项目

在 IntelliJ IDEA 中将一个已存在的 Git 目录初始化为 Maven 项目&#xff0c;可以通过以下步骤完成。这些步骤假设你已经有一个包含代码的 Git 仓库&#xff0c;并希望将其转换为 Maven 项目结构&#xff0c;以便更好地管理依赖和构建。 步骤 1&#xff1a;打开或导入 Git 仓库…

Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建

一、key 属性的核心作用 在 Vue 中,key是一个特殊的属性,主要用于协助 Vue 的虚拟 DOM(Virtual DOM)算法高效地更新实际 DOM。它的核心作用可以概括为: 唯一标识节点:为每个节点提供一个唯一的身份标识优化 Diff 算法:帮助 Vue 准确判断两个节点是否为同一节点(如for循…

【音视频】PJSIP库——示例简介、C++类说明

1、简介 pjsip库的源码中有很多示例,是入门pjsip的第一手资料,下面将各个示例所演示的功能列举出来,以便下一步学习; 最后总结下C++接口主要类及成员函数说明。 2、示例介绍 2.1 音视频处理 aectest 音频回声消除测试工具,用于演示音频处理模块中的回声消除(AEC)功能…

网站用CDN可以防DDoS和CC攻击吗?

现在市面上常见有两种CDN&#xff0c;加速CDN与高防CDN&#xff0c;这两种的区别还是很大的。 加速CDN&#xff1a; 加速CDN基本上都是共享、无防节点&#xff0c;主要做的是加速&#xff0c;所以价格也会相对较低&#xff0c;大陆地区的CDN都需要备案域名接入使用。 高防CD…

【图片识别改名】批量识别图片中的文字对图片进行改名,识别文字对图片重新命名的操作步骤和注意事项

一、应用场景 快递单号识别与管理&#xff1a;在快递业务中&#xff0c;每天会产生大量的快递面单图片。通过咕嘎OCR批量识别面单上的快递单号等关键信息&#xff0c;并以此对图片进行重命名&#xff0c;方便工作人员快速查询和管理快递包裹的物流信息&#xff0c;提高快递处理…

先理解软件工程,再谈AI辅助研发

摘要&#xff1a; 近期行业内对“AI赋能软件工程”的讨论&#xff0c;大多聚焦于代码生成等局部提效&#xff0c;这是一种危险的短视。本文旨在纠正将“软件开发”等同于“编码”的普遍误解&#xff0c;深入探讨软件工程的系统性本质。我们将论证&#xff0c;若缺乏坚实的工程体…