LeetCode 面试经典150题 28.找出字符串中第一个匹配项的下标

题目 :给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。

思路:暴力(采用)或者KMP

代码:

java 复制代码
class Solution {
    public int strStr(String haystack, String needle) {
        int len_h = haystack.length();
        int len_n = needle.length();
        if (len_h < len_n) // 长度haystack < needle,不可能满足,直接结束
            return -1;
        for (int i = 0; i < len_h; i++) {
            int j = i;
            if (len_h - i < len_n)  // 长度haystack剩余长度 < needle,提取结束
                return -1;
            int k;
            for (k = 0; j < i + len_n; j++, k++) {
                if (haystack.charAt(j) != needle.charAt(k))
                    break;
            }
            if (k == len_n) // 完全匹配,满足条件
                return i;
        }
        return -1;
    }
}

性能 :

相关推荐
安全指北针12 小时前
密态计算:数据 “可用不可见” 的底层技术解析
人工智能·算法
Jmyd012312 小时前
3D 扫描仪选型技术拆解:精度、点云与软件链路
人工智能·算法·3d·三维数字化
xxxiugou12312 小时前
链表算法题精讲:从两数相加到K组翻转
数据结构·c++·算法·链表
梦帮科技12 小时前
量子纠缠网络与量子隐形传态攻防:量子中继器信道串扰、纠缠态保真度降解与量子路由劫持
开发语言·网络·人工智能·算法·自动化·php
老王IT13 小时前
C语言语法基础语法介绍
c语言·开发语言·算法
m0_7196408713 小时前
2026年适合课题研究的具身智能实验室建设方案有哪些可参考?
经验分享·算法
LMT流氓兔13 小时前
第五单元——第9课:防止同一次操作重复执行
java·服务器·数据库·算法·ai·langchain
春弦_13 小时前
LeetCode Hot 100 刷题笔记
笔记·leetcode·哈希算法
zhangdaliangmvp13 小时前
快速排序的学习理解:从基础分治到三路划分优化
c++·学习·算法
乐迪信息13 小时前
AI算法盒子船体烟火检测:港口火灾早预警
人工智能·深度学习·算法