力扣刷题——28.找出字符串中第一个匹配项的下标
28.找出字符串中第一个匹配项的下标给你两个字符串 haystack 和 needle 请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标下标从 0 开始。如果 needle 不是 haystack 的一部分则返回 -1 。示例 1输入haystack “sadbutsad”, needle “sad”输出0解释“sad” 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 所以返回 0 。示例 2输入haystack “leetcode”, needle “leeto”输出-1解释“leeto” 没有在 “leetcode” 中出现所以返回 -1 。提示1 haystack.length, needle.length 104haystack 和 needle 仅由小写英文字符组成实现代码Python:classSolution(object):defgetNext(self,next,needle):#j:表示当前已匹配的最长相等前缀的最后一个位置#i:表示当前正在处理的后缀的最后一个位置#1.初始化j-1next[0]j#2.处理前后缀不相同的情况回退foriinrange(1,len(needle)):whilej0andneedle[i]!needle[j1]:jnext[j]#3.处理前后缀相同的情况:前进ifneedle[i]needle[j1]:j1#4.更新next[i]jreturnnextdefstrStr(self,haystack,needle): :type haystack: str :type needle: str :rtype: int iflen(haystack)0:return-1next[-1]*len(needle)self.getNext(next,needle)j-1#j:模式串指针foriinrange(len(haystack)):#i:主串指针whilej0andhaystack[i]!needle[j1]:jnext[j]ifhaystack[i]needle[j1]:j1ifjlen(needle)-1:returni-len(needle)1return-1核心思路——KMP算法解决字符串问题最常用的算法就是KMP算法通过预处理next数组当匹配失败时主串指针不动模式串指针根据next数组略过一些字符继续匹配可以避免回溯

相关新闻

见面三分情:为什么当面沟通是最强大的沟通方式

见面三分情:为什么当面沟通是最强大的沟通方式

俗话说:"见面三分情。"这句朴素的民间智慧,道出了人际沟通中一个被现代人反复低估的真相——很多时候,你发出去的那条消息、那封邮件、那个电话,远远比不上你亲自走到对方面前,说上几句话。01 为什么"见…

2026/7/16 10:41:10 阅读更多 →
【源码解读之 Mybatis】【核心篇】-- 第篇:StatementHandler语句处理器

【源码解读之 Mybatis】【核心篇】-- 第篇:StatementHandler语句处理器

倭逊以俚随着.NET 10的发布,微软在网络技术栈上带来了一系列令人兴奋的改进和新增功能。这些改进覆盖了HTTP协议处理、WebSockets API、安全增强以及网络基础原语等多个方面。本文将深入探讨这些技术改进,帮助开发者更好地理解和利用.NET 10在网络编程方…

2026/7/13 1:24:37 阅读更多 →
刷写上位机工作流

刷写上位机工作流

刷写工作流

2026/7/14 4:51:45 阅读更多 →

最新新闻

手把手教你部署my-neuro:Windows与Linux系统安装教程

手把手教你部署my-neuro:Windows与Linux系统安装教程

手把手教你部署my-neuro:Windows与Linux系统安装教程 【免费下载链接】my-neuro This project lets you create your own AI desktop companion with customizable characters and voice conversations that respond in just 1 second. Features include long-term …

2026/7/16 16:45:36 阅读更多 →
AndroidFastScroll触摸事件处理:FixOnItemTouchListenerRecyclerView解决冲突方案

AndroidFastScroll触摸事件处理:FixOnItemTouchListenerRecyclerView解决冲突方案

AndroidFastScroll触摸事件处理:FixOnItemTouchListenerRecyclerView解决冲突方案 【免费下载链接】AndroidFastScroll Fast scroll for Android RecyclerView and more 项目地址: https://gitcode.com/gh_mirrors/an/AndroidFastScroll AndroidFastScroll是…

2026/7/16 16:43:34 阅读更多 →
如何识别虚假开发工具:Maverick Studio 2022真相揭秘

如何识别虚假开发工具:Maverick Studio 2022真相揭秘

1. Maverick Studio 是什么?别被名字骗了,它根本不是“苹果系”软件 第一次看到 Maverick Studio 2022 这个名字,我下意识点开官网,以为是 macOS 上某个新出的创意工具——毕竟 “Maverick” 是 OS X 的一个经典版本代号&#…

2026/7/16 16:43:34 阅读更多 →
声音传感器模块与Modbus协议:从数据采集到工业物联网的实战解析

声音传感器模块与Modbus协议:从数据采集到工业物联网的实战解析

1. 声音传感器模块:工业物联网的"耳朵"第一次接触声音传感器时,我把它想象成工业设备的"耳朵"。就像人类通过耳朵感知声波一样,这个小小的模块能够捕捉环境中的声音振动,并将其转化为电信号。在工业物联网(II…

2026/7/16 16:43:34 阅读更多 →
10个UdonSharp实用技巧:提升VRChat脚本性能的完整指南

10个UdonSharp实用技巧:提升VRChat脚本性能的完整指南

10个UdonSharp实用技巧:提升VRChat脚本性能的完整指南 【免费下载链接】UdonSharp An experimental compiler for compiling C# to Udon assembly 项目地址: https://gitcode.com/gh_mirrors/ud/UdonSharp UdonSharp是一款实验性编译器,能够将C#代…

2026/7/16 16:41:33 阅读更多 →
3分钟掌握抖音批量下载:douyin-downloader免费工具终极指南

3分钟掌握抖音批量下载:douyin-downloader免费工具终极指南

3分钟掌握抖音批量下载:douyin-downloader免费工具终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …

2026/7/16 16:41:32 阅读更多 →

日新闻

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

本篇深入剖析 ImportantDays 项目的数据持久化方案——基于 HarmonyOS ArkData 模块的 Preferences 轻量级存储,以及 PreferenceUtil 工具类的单例封装。一、HarmonyOS 数据存储方案对比 HarmonyOS 提供了多种数据存储方案:方案适用场景特点Preferences轻…

2026/7/16 0:08:27 阅读更多 →
Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

2026/7/16 0:08:27 阅读更多 →
鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

从鸿蒙 7(HarmonyOS NEXT)开始,官方全面完成了从 ohos.* 零散模块到 kit.* 领域套件的体系重构。对开发者来说,第一道门槛不是 API 用法变化,而是统一的导入规范——旧体系默认导入、解构导入混用的混乱局面被彻底终结…

2026/7/16 0:10:29 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/15 21:09:01 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/15 19:42:20 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/15 17:52:08 阅读更多 →

月新闻