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

性能

相关推荐
HZZD_HZZD21 分钟前
碳核查场景下能源计量数据精准采集与碳排放核算算法全链路实战:从智能电表协议适配到排放因子动态计算
算法·能源
饼干哥哥41 分钟前
10.5% 深层转化、90%+ 新用户,ChatGPT Ads 值得吗?
算法·正则表达式·编程语言
Irissgwe1 小时前
算法之二分查找
数据结构·c++·算法·二分查找
亿牛云爬虫专家1 小时前
代理IP质量评估:如何建立一套代理IP的多维度评分与淘汰算法?
tcp/ip·算法·爬虫代理·延迟·免费代理ip·连通率·时效
zzz_23681 小时前
【Java实习面试算法冲刺】动态规划
java·算法·面试
小蒋学算法1 小时前
算法-滑动窗口最大值
数据结构·算法
胡萝卜术1 小时前
V040:RAG 检索增强生成的工程链路解构与生产级系统设计
面试·架构·github
冷小鱼1 小时前
AI Agent的核心算法:自主学习与反思(Self-Reflection / Critique)
人工智能·学习·算法·自主学习·self-reflection·critique·反思
:-)11 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
kyriewen13 小时前
面试官让我优化一个卡死的表格,我打开 Claude 五秒重写,他放下咖啡问我要不要来当组长
前端·javascript·面试