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;
    }
}

性能 :

相关推荐
東隅已逝,桑榆非晚1 小时前
算法2. 双指针法-复写零
c++·笔记·学习·算法
师夷长技以自愈1 小时前
第 5 讲:Function Calling 做强制结构化输出——把「交卷」伪装成 tool
面试
云析赢指标公式网42 小时前
文华财经指标源码笔记:WINNER筹码函数、控盘变量与MACD变体的调试记录
java·笔记·算法
香蕉大香蕉(06敬畏市场)3 小时前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
CC数分3 小时前
统计学基础|先把问题问对:数据分析的六大类型
大数据·人工智能·算法
文丑颜不良啊4 小时前
LeetCode1721~1740题目解析
java·leetcode
地平线开发者4 小时前
CLIP 的训练机制:从对比学习到图文对齐
深度学习·算法·自动驾驶
hetao17338374 小时前
2026-11-02 hetao1733837 的刷题记录
c++·算法
Geektec4 小时前
IMU 选型完全指南:从硬件参数到算法融合的系统工程视角
算法·imu·陀螺仪·加速度计·元器件选型
CQU_JIAKE4 小时前
11.2【A】
算法