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

题目 :给你两个字符串 haystackneedle ,请你在 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;
    }
}

性能

相关推荐
故事和你9113 小时前
洛谷-算法2-3-分治与倍增5
开发语言·数据结构·c++·算法·动态规划·图论
逻辑驱动的ken13 小时前
Java高频面试考点场景题17
开发语言·jvm·面试·求职招聘·春招
Fuly102413 小时前
java面试知识点复习
java·开发语言·面试
北顾笙98013 小时前
day37-数据结构力扣
数据结构·算法·leetcode
小程故事多_8013 小时前
[大模型面试系列] 破解 Agent 软故障困局,四层防御 + 可观测性,筑牢生产级稳健性防线
人工智能·面试·职场和发展·智能体
啦啦啦_999914 小时前
1. 逻辑回归
算法·机器学习·逻辑回归
嵌入式小企鹅14 小时前
嵌入式面试宝典
学习·面试·嵌入式·嵌入式工程师·高薪offer
fengenrong14 小时前
20260429
c++·算法
南宫萧幕14 小时前
Python与Simulink联合仿真:基于DQN的HEV能量管理策略建模与全链路排雷实战
开发语言·人工智能·python·算法·机器学习·matlab·控制
apollowing14 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶(优)
算法·启发式算法·web app