在这里插入图片描述

代码思路分析:

1. 边界情况处理

代码中没有显式处理以下边界情况,但逻辑已隐含支持:

  • needle 为空字符串:应返回 0(但题目通常保证 needle 非空)。
  • haystackneedle:直接返回 -1(通过循环条件 l < n 隐含处理)。

2. 逐个字符匹配
for (int l = 0; l < n; l++) {if (haystack[l] == needle[0]) {  // 找到首个字符匹配的位置int r = 0;int res = l;  // 记录起始位置while (r < needle.size() && haystack[l] == needle[r]) {l++;r++;}// ...}
}
  • 外层循环:遍历 haystack 的每个字符 haystack[l]
  • 内层循环:当 haystack[l]needle 的首字符匹配时,尝试匹配整个 needle
    • r 表示当前匹配到 needle 的位置。
    • res 记录 needlehaystack 中的起始位置。

3. 匹配成功判断
if (r == needle.size()) {return res;  // 完全匹配,返回起始位置
}
  • 如果 r 达到 needle 的长度,说明完全匹配,返回起始位置 res
class Solution {
public:int strStr(string haystack, string needle) {int n=haystack.size();for(int l=0;l<n;l++){if(haystack[l]==needle[0]){int r=0;int res=l;while(r<needle.size()&&haystack[l]==needle[r]){l++;r++;}if(r==needle.size()){return res; }l=res;}}return -1;}
};

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

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

相关文章

深入剖析RT-Thread串口驱动:基于STM32H750的FinSH Shell全链路Trace分析与实战解密(上)

0. 概述 这是cherryusb代码trace分析系列文章之七。 RT-Thread串口驱动框架与FinSH Shell运行机制深度解析&#xff1a;针对STM32H750 ART-PI平台&#xff0c;本文独辟蹊径采用创新的代码trace分析方法&#xff0c;破解庞大串口框架下的复杂运行逻辑。通过精确trace日志与drv_u…

Python与C++通信教程:C++打包dll,供Python调用(1)

目录 1,新建一个工程 math_functions.cpp内容: 先编译一下看是否可以正常运行: 2,编译成dll,并用Python调用 有两种方式: 命令 1(使用静态链接): 可移植性: 命令 2(动态链接): 可移植性: 这里我使用的是静态链接的方式: python调用实例 test_dll.py 1,…

编程与数学 03-002 计算机网络 19_网络新技术研究

编程与数学 03-002 计算机网络 19_网络新技术研究一、软件定义网络&#xff08;SDN&#xff09;&#xff08;一&#xff09;SDN的基本原理与架构&#xff08;二&#xff09;SDN的应用场景与优势二、网络功能虚拟化&#xff08;NFV&#xff09;&#xff08;一&#xff09;NFV的概…

uniapp 跨端开发

一、创建uniapp项目 1. 项目架构2. 初始化项目3. pages.json 和 tabBar 案例4. uni-app和原生小程序开发区别5. 用命令行创建uni-app项目 官网链接&#xff1a;https://uniapp.dcloud.net.cn/quickstart-cli.html#创建uni-app6. 用vscode开发uni-app在uni-app中只有manifest.js…

区块链支付技术的核心原理

区块链支付利用分布式账本技术&#xff08;DLT&#xff09;实现点对点的价值转移&#xff0c;无需传统银行或支付网关的中介。核心特点是去中心化、透明、可追溯。• 基本流程&#xff1a;1. 用户发起交易&#xff1a;通过加密货币钱包发送支付请求&#xff08;例如用ETH支付&a…

linux中 多进程 导致cuda错误的问题解决

问题总结与解决方案 核心问题 在使用 Linux 系统时&#xff0c;多进程并行计算中加载模型到 GPU 时出现错误&#xff1a;_MODEL SentenceTransformer( model_path, device "cuda" if torch.cuda.is_available() else "cpu" )根本原因&#xff1a; CUDA 上…

智能感知的新入口:AIGC 与低延迟视频通路的深度融合

✳️ 引言&#xff1a;AIGC&#xff0c;正在重构视觉智能的“生成逻辑” AI生成内容&#xff08;AIGC&#xff09;正在从“内容创作工具”跃升为计算机视觉系统的新引擎。它不再只是“文生图”、“图生文”的演示技术&#xff0c;而是实实在在地改变着我们构建、处理和理解视觉…

Ubuntu 内网多台服务器时间同步方案(适用于临时能上外网的环境)

哎&#xff0c;最近项目是运行在内网环境下的&#xff0c;出现了由于时间不同步导致的bug。一般来讲&#xff0c;几台服务器的时间不一致&#xff0c;会带来很多问题&#xff0c;比如日志时间对不上、分布式服务出现异常&#xff0c;等等。项目上现在有三台服务器&#xff0c;其…

延长电池寿命的低Iq技术

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。一、概述随着电池供电型应用的激增&#xff0c;人们对质优价廉的电池和电池包的需求持续猛涨。电池制造商们不断采用新的化学物…

QT 如何实现enum与字符串的互转

将enum中定义的枚举值&#xff0c;以字符串的形式写入文件&#xff0c;同时也能从字符串转为枚举值。举例说明&#xff1a; ColorSelector中的Colors枚举&#xff0c;我们希望 kColorRed 这个写入到本地文件时&#xff0c;可以直接保存“kColorRed”&#xff0c;而非kColorRed对…

SLAM卷不动了,机器人还有哪些方向能做?

关注gongzhonghao【CVPR顶会精选】众所周知&#xff0c;机器人因复杂环境适应性差、硬件部署成本高&#xff0c;对高效泛化一直需求迫切。再加上多传感器协同难题、真实场景数据获取不易&#xff0c;当下对迁移学习 机器人智能融合的研究也就更热烈了。不过显然&#xff0c;这…

H.266 vs H.265/AV1/H.264:从工程落地看下一代视频系统的技术演进

一、背景&#xff1a;编解码标准演进背后的技术驱动 视频编码标准的更迭&#xff0c;从未只是一次简单的技术升级&#xff0c;而是对码率压缩效率、编码复杂度与画质质量三者之间平衡点的持续探索。在 H.264 成为全平台事实标准的十余年里&#xff0c;它成功支撑了 SD 至 1080…

Javascript面试题及详细答案150道之(031-045)

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Git如何同步本地与远程仓库并解决冲突

在团队协作开发中&#xff0c;保持本地仓库与远程仓库同步是至关重要的。本文将详细介绍如何使用 Git 更新本地仓库至最新远程版本&#xff0c;并深入解析冲突的产生原因及解决方法。一、同步本地与远程仓库1. 检查远程仓库配置首先&#xff0c;确保本地仓库已正确关联远程仓库…

Hadoop MapReduce 3.3.4 讲解~

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…

1、【数学】【硬币悖论】旋转硬币问题

问题描述&#xff1a; 两个相同的硬币&#xff0c;半径都是 rrr。一个硬币&#xff08;称为“动硬币”&#xff09;沿着另一个固定不动的硬币&#xff08;“静硬币”&#xff09;的外边缘无滑动地滚动一圈&#xff0c;回到起始位置。问&#xff1a;动硬币自身旋转了几圈&#x…

【盘古100Pro+开发板实验例程】FPGA学习 | PCIE 通信测试实验例程

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1. 实验简介 实验目的&#xff1a; 完成 PCIE 通信测试。 实验环境&#xff1a; Window11 PDS2022.2-SP6.4 硬件环…

基于高阶累积量的调制识别

基于高阶累积量的调制识别是一种利用信号的高阶统计特性来识别不同调制方式的方法。 1. 基本原理 高阶累积量&#xff08;Higher-Order Cumulants&#xff09;是信号处理中的一个重要工具&#xff0c;能够捕捉信号的非高斯特性。与高阶矩相比&#xff0c;高阶累积量对高斯噪声具…

Java常用数据结构入门

Java常用数据结构入门 前言 数据结构是程序设计中的基础&#xff0c;掌握常用数据结构能帮助你更高效地解决问题。本文面向Java初学者&#xff0c;介绍Java中常用的数据结构及其基本使用方法。 1. 数组 (Array) 数组是最基础的数据结构&#xff0c;可以存储固定大小的同类型…

Android GPU测试

一、Basemark GPU 可选择进行vulkan和opengl测试&#xff1a; 二、GFXBench 进行各种offscreen测试&#xff08;包括曼哈顿离屏&#xff09; 这是由GFXBench图形性能测试套件提供的一个著名3D图形渲染场景。 它模拟了一个复杂的未来都市环境&#xff08;类似曼哈顿&#xff…