leetcode题记:Implement strStr()

基于立创开源ESP32步进电机驱动板硬件设计与优化实践 本文详细介绍了基于立创开源平台的ESP32步进电机驱动板硬件设计与优化实践。重点解析了ESP32-PICO-D4与A4950驱动芯片的选型搭配、电源电路噪声隔离、PCB布局布线技巧以及保护电路设计,为开发者提供了从原理图到PCB的完整优化方案,有效提升驱动板的性能与稳定性。 阅读详情

题目描述:

Implement strStr().

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

Example 1:

Input: haystack = "hello", needle = "ll"
Output: 2
Example 2:

Input: haystack = "aaaaa", needle = "bba"
Output: -1
Clarification:

What should we return when needle is an empty string? This is a great question to ask during an interview.

For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C's strstr() and Java's indexOf().

解题思路:

1,滑动窗口的思想:
    把needle当成一个整体,滑动窗口size为needle.length(),在haystack中按照每次一个字符的速度去滑动;
    比如:当haystack="helloworld",needle="low"时,第一次滑动,比较"hel"与"low",第二次比较"ell"与"low",第三次比较"llo"与"low",如此类推下去;
    这个过程只需要一个for循环即可,for循环终止条件为haystack.length()-needle.length()+1;for循环有两种输出可能,第一,成功匹配,则返回对应索引。第二,为匹配,则返回-1;
    接下来的重点是判断size为needle.length()的滑动窗口的字符串与needle是否相等,这个过程也同样只需要一个for循环即可,for循环结束条件为needle.length(),这一层的主要思想就是利用了for循环的break,当第一个字符不相等时,就不需要继续匹配后面的字符,直接break;
2,匹配成功的条件:
    index=i+needle.length(),index定义见程序中;
3,结束条件:
    滑动至haystack.length()-needle.length()+1时结束;

难点:

笔者在做这道题的时候提交了许多次,错误大概有needle为空与haystack为空考虑不周全,所以还是需要细心

代码:

class Solution {
    public int strStr(String haystack, String needle) {
        if(haystack.length() < needle.length()){
            return -1;
        }
        else if(haystack.length() ==0 && needle.length()==0){
            return 0;
        }
        else {

            for (int i = 0; i < haystack.length() - needle.length() + 1; i++) {
                int index = i;
                for (int j = 0; j < needle.length(); j++) {
                    if (haystack.charAt(index)!=needle.charAt(j)){
                        break;
                    }
                    index += 1;
                }
                if(index == i + needle.length()){
                    return i;
                }
            }
            return -1;
        }
    }
}

其他方法:

当然这道题目也有其它优秀的方法,比如下面这个只用了一行代码,但这个显然不是这道题目的本意,忘读者脚踏实地;

class Solution {
public int strStr(String haystack, String needle) {
if(haystack.contains(needle)){
return haystack.indexOf(needle);
}
return -1;
}
}
YOLO26涨点改进 | 全网独家首发 主干改进篇 | TGRS 2025 | RepViT-TD,告别庞大骨干!YOLO26 + RepViT-TD轻量又强大,实现更快更准的小目标检测! 本文提出将RepViT-TD轻量级主干网络应用于YOLO26目标检测框架,以提升小目标检测性能。RepViT-TD通过优化计算资源分配,强化前两层高分辨率特征提取能力,在保持轻量化的同时(仅4.85M参数)显著提升微小目标的检测精度(AI-TODv2数据集AP50达54.6%)。文章详细介绍了三种主干改进方案(RepVit_ldy1/2/3)的代码实现,并提供了完整的YAML配置文件修改指南,使模型能高效部署于边缘设备。实验表明,该方法在计算复杂度(38.19G FLOPs)和检测精度间取得了良好平衡。 阅读详情

相关推荐

高杂合度基因组组装实战:Hifiasm参数调优与purge_dups过滤效果对比(附猪毛菜案例)

本文深入探讨了高杂合度基因组组装中Hifiasm参数调优与purge_dups过滤的实战效果对比,通过猪毛菜案例详细解析了两种方法的适用场景与优化策略。文章重点分析了purge_dups在contig过滤中的显著效果,为基因组组装提供了关键的技术参考。

weixin_29232121的博客 495

[LeetCode][Java] Implement strStr()

题目: Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 题意: 实现strStr() 返回needle在haystack中第一次出现的位置,如果haystack中不存在needl

西湖有大葱的专栏 1833

别再傻傻分不清了!一文搞懂电机里的‘旋变’和‘编码器’到底有啥区别

本文深度解析电机位置传感器中旋转变压器(旋变)与编码器的核心区别,包括工作原理、精度对比及环境适应性。通过实测数据和典型应用场景,帮助工程师在工业机器人、新能源汽车电机等关键领域做出精准选型决策,提升系统可靠性和控制精度。

weixin_28689507的博客 504

leetcode 28. Implement strStr() 三种解法

28. Implement strStr()   Question Editorial Solution  My Submissions Total Accepted: 119996Total Submissions: 467056Difficulty: Easy Implement strStr(). Returns the in

有志者事竟成 4839

TM1650数码管驱动芯片

简介 TM1650是一款国产4位共阴数码管驱动芯片,它还带有矩阵按键扫码功能。它的基本参数如下: 工作电压:3~5V 数码管驱动模式:8段x4位共阴数码管 矩阵按键驱动模式:7x4矩阵按键,不支持组合键 通信接口:类IIC,使用了IIC相同的时序,但没有完全遵守IIC的协议,不带从机地址 引脚定义 SCL:串行通信时钟线 SDA:串行通信数据线 做数码管驱动使用时 DIGx:数码管的位选引脚,灌电流驱动,最大可吸收150mA电流 A~DP:数码管的段驱动引脚,拉电流驱动,最大可输出25m

luliplus的博客 4万+

使用trae自动生成前后端分离的web应用程序

使用ai自动生成前后端分离的web应用程序

一介书生 2526

Leetcode—— 28. Implement strStr()

年后第一题,身体是革命的本钱,过年没把身体照顾好,导致好多天不能学习。&gt;_&lt; 题目原址 https://leetcode.com/problems/implement-strstr/description/ 题目描述 Implement strStr(). Return the index of the first occurrence of needle in...

想当厨子的程序媛 242

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

ProceduralMan的博客 7410

实现strStr()

题目描述:来源:https://leetcode-cn.com/problems/implement-strstr/ 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 解决思路: 依次扫描haystack字符串,其下标为i,当有一个字符和needle的第...

勿忘初心的博客 275

告别降级CUDA!手把手教你为RTX 50系显卡(5080/5090)配置专属的PyTorch Nightly + vLLM推理环境

本文详细指导如何为RTX 50系显卡(5080/5090)配置专属的PyTorch Nightly和vLLM推理环境,特别针对CUDA 12.8的适配问题提供解决方案。从硬件准备到源码编译,再到模型部署与性能调优,手把手教你构建高效AI推理系统。

weixin_33724046的博客 409

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 778

Implement strStr()--leetcode

Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack。 leetcode上面的一道题。就是一个字符串中是否存在子串和给定的另外一个字符串相等。如果相等,返回该子串首字母的索引。不存在就返回-1

曾某某的博客 1081

【docker】第10篇 Failed with result ‘exit-code和Start request repeated too quickly和Failed to start Docker

【docker】解决 Failed with result 'exit-code'和Start request repeated too quickly和Failed to start Docker。

Fanjufei的博客 6819

leetcode题记——Implement strStr()

Implement strStr().Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.Example 1:Input: haystack = "hello", needle = "ll" Output: 2 Example 2:Input:...

bell16的专栏 155

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

leetcode刷题记录-28. Implement strStr()

leetcode刷题记录-28. Implement strStr() 1.题目要求   Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.   Example 1:   Input: haystack = “hello”, ne...

zhaizhan501的博客 207

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【力扣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

LeetCode 28. Implement strStr()

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

温迪今天刷题了吗 227

LeetCode 28. Implement strStr() 题解

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

cannonjinx的博客 4293

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

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

水果君の日常 3379

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的博客 303

LeetCode 之 Implement strStr() — C 实现

Implement strStr()   Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 实现 strStr(). 返回字串在字符串中第一次出现的位置,不存在则返回-1.

~心有所依~ 的博客 448

LeetCode 笔试题 Implement strStr() (实现 strStr() 函数)

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

偶然i的博客 200

Implement strStr() [LeetCode] + KMP

Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack. 实现了下,KMP算法明显速度提高y

_Legolas_的技术专栏 1082

leetcode 28. Implement strStr() KMP 算法

leetcode 28. Implement strStr() 要理解next数组的构造思想,学习博客  http://www.cnblogs.com/yjiyjige/p/3263858.html。 public class Solution { public int[] getNext(String t){ int tlen = t.length();

独钓寒江雪 495

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

Table of Contents 一、中文版 二、英文版 三、My answer 四、解题报告 一、中文版 实现strStr()函数。 给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", need...

三妹的博客 223

【Leetcode】Implement strStr()

题目链接:https://leetcode.com/problems/implement-strstr/ 题目: Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 算法:

业精于勤,荒于嬉 1773
上一篇: 区块结构(二)
下一篇: leetcode题记:Search Insert Position
your_blue_sky
博客等级 码龄17年 20粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值