LeetCode-28-Implement strStr()(字符串匹配)

告别二极管发热!手把手教你用MOS管搭建同步整流电路(附死区时间设置避坑指南) 本文详细介绍了如何利用MOS管搭建同步整流电路(SR),以替代传统二极管,显著降低导通损耗和发热问题。内容涵盖自驱动方案的选择、关键元件参数计算、PCB布局要点及死区时间设置技巧,帮助工程师优化电源设计效率。 阅读详情

Q:

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

Analysis:

第一反应就是用基础的KMP算法来实现,也可用其他字符串匹配算法如BM等算法。

Code:

public class Solution {

    public static int[] getNextVal(String needle) {
        int[] next = new int[needle.length()];
        next[0] = -1;
        int k = -1;// 前缀索引
        int j = 0;// 后缀索引
        while (j < needle.length() - 1) {
             //needle.charAt(k)表示前缀,needle.charAt(j)表示后缀    
            if (k == -1 || needle.charAt(j)==needle.charAt(k)) {
                ++k;
                ++j;
                next[j] = k;
            } else {
                k = next[k];
            }
        }
        return next;
    }

    public int strStr(String haystack, String needle) {
        int i=0;
        int j=0;
        int hayLen=haystack.length();
        int needLen=needle.length();
        if(needLen==0){
            return 0;
        }
        if (hayLen==0) {
            return -1;
        }
        int []next=getNextVal(needle);
        while(i<hayLen&&j<needLen){
            if(j==-1||haystack.charAt(i)==needle.charAt(j)){
                //①如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),都令i++,j++
                i++;
                j++;
            }else{
                //②如果j != -1,且当前字符匹配失败(即S[i] != P[j]),则令 i 不变,j = next[j]      
                //next[j]即为j所对应的next值    
                j=next[j];
            }
        }
        if(j==needLen){
            return i-j;
        }else{
            return -1;
        }
    }
}
[全志T113]:ST7701 86屏幕驱动 阅读详情

相关推荐

避坑指南:企业微信IP白名单设置失败的5种常见原因及解决方案

本文深入解析企业微信API调用中IP白名单设置失败的5种常见原因,包括动态公网IP变更、代理服务器导致的IP失真等,并提供针对性的解决方案。特别针对可信IP配置问题,详细介绍了诊断方法和Java代码示例,帮助企业开发者快速解决访问限制问题,确保API调用安全稳定。

weixin_29280657的博客 621

LeetCode 28. Implement strStr()(字符串匹配问题)

题目描述:    Implement strStr().    Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.例子:Input: haystack = "hello", needle = "ll" Output: 2Input: hays...

andersonxie的博客 253

【Codesys】-扫描添加失败,手动添加第三方模块,真·DC模式的高速计数模块

欧姆龙耦合器(NX-ECC201)和高速计数模块(NX-EC0132)单独使用。扫描设备添加到Codesys中,会报错,无法自动添加。记录一下,以防忘记。高速的计数保证了位置的准确性,位置准确就能保证裁切的精度,一切的基础就在这儿了,奈何目前只有欧姆龙和倍福能做到这样的波形。

qq_35316470的博客 1390

28.LeetCode Implement strStr()(meidum)[字符串 子串匹配]

Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Subscribe to see which companies asked this question strStr(str

qz530308783的专栏 266

使用Intel编译器编译OpenFOAM

本文总结了使用INTEL编译器编译OpenFOAM的过程

姜蜉蝣的博客 1551

电脑版微信多开,最详细教程没有之一

首先桌面任意的位置右键新建文本文档输入如下代码: TASKKILL /F/IM WECHAT.EXE start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" ...

大超子 4393

LeetCode_String_28. Implement strStr() 实现 strStr()(C++/Java)【字符串匹配,Sunday算法,KMP算法】

一,题目描述 原题链接 英文描述 中文描述 二,解题思路 参考: @Test【Sunday 解法】具体介绍了Sunday算法的实现; @LoliconAutomaton【字符串匹配——Brute-Force、Sunday以及KMP算法】介绍了不同算法的区别,以及为什么有效; 1,Sunday算法 1.1 算法实现 图源@Test【Sunday 解法】。大佬讲解的十分清晰,就直接拿过来用了 1.2 算法原理 当模板字符串(pattern)与当前子串(cur...

&再见萤火虫&的博客 300

MOOS-ivp 实验三 MOOS简介(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

weixin_44151170的博客 7434

LeetCode 28. Implement strStr() 题解

本题是字符串匹配的经典问题,主要考察对字符串处理和 KMP 算法的理解和应用。通过使用暴力解法或 KMP 算法,我们可以高效地实现strStr()函数。暴力解法的核心思想是:遍历 haystack 字符串,对于每个位置,检查从该位置开始的子字符串是否与 needle 相等。KMP 算法的核心思想是:通过构建前缀函数,在匹配失败时快速回退,避免重复比较。在实际应用中,KMP 算法通常更受欢迎,因为它的时间复杂度更低,尤其是在处理长字符串时。这种方法不仅适用于实现strStr()

cannonjinx的博客 4293

用 SNC 和 SAP Single Sign-On Secure Login 把 SAP 登录这件小事,变成一件安全又不用输密码的事

在传统的 SAP 系统里,登录这件事看起来很朴素:用户打开 SAP GUI,输入一个 SAP 用户名,再输入一个 SAP 密码,点回车,进系统,开始干活。表面上没毛病,但从安全角度看,这种老办法问题很大。默认情况下,这些用户名和密码在网络上传输时是明文,也就是不加密传输。攻击者如果在公司网络里做监听,理论上可以直接截取到口令信息,这种风险对今天任何一家合规要求高、审计严格的企业来说,基本是不可接受的。(SAP Help Portal)SAP 给出的答案叫做 ,全称是 。SNC 做的事情可以概括成两类:一类是

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 381

杰理外挂flash使用教程(四):制作fat32文件系统格式的资源文件

本文档提供了FAT文件系统镜像生成与资源打包的完整指南,包含两种实现方案:推荐的WSL/Ubuntu环境方案和Windows原生方案。详细说明了从创建空白镜像、格式化、资源文件复制到最终打包为设备可用的res.bin文件的完整流程,并对比了FAT32与FAT16的特性差异。文档还包含关键文件说明、使用注意事项和典型应用场景,适用于嵌入式系统开发、固件升级等场景。

qq_42014563的博客 1341

leetcode 28.实现strstr()(implement strstr)C语言

leetcode 28.实现strstr(implement strstr)C语言1.description2.solution 1.description https://leetcode-cn.com/problems/implement-strstr/ 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack

hsk6543210的博客 447

【CUDA Runtime】第一个“Hello World“程序

CUDA(Compute Unified Device Architecture)是 NVIDIA 提供的一个并行计算平台和编程模型,旨在通过利用 GPU 的强大计算能力来加速计算密集型应用。对于许多开发者而言,开始学习 CUDA 编程的第一步通常是编写一个简单的“Hello World”程序。尽管 CUDA 的实际应用远远超出一个简单的例子,但这个初步的示例能帮助开发者快速入门,理解基本的 CUDA 编程流程。

m0_62599305的博客 1508

LeetCode 28. Implement strStr()

LeetCode 28. Implement strStr() (Easy) 主要知识点:字符串、KMP算法;优先级:2

温迪今天刷题了吗 228

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【力扣Leetcode题解系列之0028— Implement strStr() 实现 strStr()】

摘要 LeetCode 28题要求实现字符串匹配函数strStr(),即在haystack中查找needle首次出现的位置,未找到则返回-1。本文提供了Python、Java、C、C++和Go的暴力匹配解法,均通过遍历haystack并逐字符比较实现。算法时间复杂度为O((M-N+1)*N),空间复杂度O(1)。关键点包括边界条件处理(如空needle返回0)和子串比较逻辑。扩展方向可涉及多位置匹配、模糊匹配或动态字符串场景。该问题在文本搜索、生物基因分析等领域有实际应用。

youngerwang的博客 1237

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【leetcode】28. 实现 strStr()(Implement strStr())

题目描述 【leetcode】28. 实现 strStr()(Implement strStr()) 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 第一次解答 思路: 感觉与 最长公共前缀 类似 感觉与 剔除有序数组重复元素类似...

Liber-coder的博客 273

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode 28. Implement strStr()(KMP算法)

题目来源:https://leetcode.com/problems/implement-strstr/ 问题描述 28.Implement strStr() Easy ImplementstrStr(). Return the index of the first occurrence of needle in haystack, or-1if needle is not pa...

da_kao_la的博客 202

【Leetcode】28. 实现 strStr()(Implement strStr())

Leetcode - 28. Implement strStr() (Easy) 题目描述:返回匹配字符串首字母的下标,不存在返回 -1。 Input: haystack = "hello", needle = "ll" Output: 2 解题思路:注意 needle 长度为 0 时返回 0,而不是 -1。 public int strStr(String haystack, String n...

厉兵秣码 213

Leetcode 28. Implement strStr() 实现 strStr()

@[TOC](Leetcode 28. Implement strStr() 实现 strStr()) 28. Implement strStr() 题目描述 Implement strStr(). Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of hayst...

importsys的博客 291

[LeetCode] 028. Implement strStr() (Easy) (C++/Python)

[LeetCode] 028. Implement strStr() (Easy) (C++/Python)

水果君の日常 3379

LeetCode第28题思悟——strStr(implement-strstr)

LeetCode第28题思悟——strStr(implement-strstr) 知识点预告 注意算法的使用场景和优劣分析; 参数边界条件的处理 题目要求 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 链接:https://leetcode-cn.com/p...

博采众长,自成一派; 257

【LeetCode】Implement strStr()(实现strStr())

这道题是LeetCode里的第28道题。 题目描述: 实现strStr()函数。 给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: ...

『诞生之时已至,以此修正万象』 144

【LeetCode】 28. Implement strStr() 实现 strStr()(Easy)(JAVA)

【LeetCode】 28. Implement strStr() 实现 strStr()(Easy)(JAVA) 题目地址: https://leetcode.com/problems/implement-strstr/ 题目描述: Implement strStr(). Return the index of the first occurrence of needle in haystac...

qq_16927853的博客 150

leetcode 28. 实现strStr()(Implement strStr())

  实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", ne...

一叶之修的博客 249

LeetCode OJ 28 Implement strStr() [Easy]

LeetCode OJ 28  Implement strStr()   题目描述: Implement strStr(). Returns the index of the first occurrenceof needle in haystack, or -1 if needle is not part of haystack. 题目理解: 给定两个字符串haystack和ne

大吱的博客 284

LeetCode 28.Implement strStr

LeetCode 28.Implement strStr 代码: class Solution: def strStr(self, haystack: str, needle: str): i=len(haystack) j=len(needle) m=0 while m &lt;= i-j: ph...

wyf527的博客 231
上一篇: LeetCode-27-Remove Element(消除数组中给定的元素)
下一篇: LeetCode-35-Search Insert Position(搜素并插入指定位置)
CinKateRen
博客等级 码龄12年 38粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值