LeetCode学习之实现strStr()

完整实现代码:

java 复制代码
class Solution {
    public int strStr(String haystack, String needle) {
        
        char[] hayArr = haystack.toCharArray();
        char[] neeArr = needle.toCharArray();

        int needlelen = neeArr.length;
        int haystacklen = hayArr.length;

        for(int i = 0;i<haystacklen;i++){
            if(hayArr[i] == neeArr[0]){
                if(i + needlelen > haystacklen){
                    return -1;
                }
            }
            boolean match = true; 
            for(int j = 0;j<needlelen;j++){
            if(hayArr[i+j] != neeArr[j]){
                match = false;
                break;
            }
        }
        if(match){
            return i;
        }
        
        }
        return -1;
    }
}

解题思路:

将字符串都转化为字符数组,在haystack这个数组中查找元素和needle这个数组的第一个元素相同的位置,如果有判断这个位置的索引加上needle数组的长度是否超过haystack这个数组的长度,如果超过接直接返回-1,接着设置一个标志位,用来标记是否符合判断条件,从符合条件的位置开始向后一一比较两个数组中的元素,只要有不相同的元素,将把标志设为false,并且结束当前for循环,继续检查后边的符合条件的位置,如果条件成立,标志位就会为true冰并且返回i对应的结果索引,如果都不成立,最后程序会直接返回-1

相关推荐
for_ever_love__2 小时前
python基础语法学习: 数据容器
windows·python·学习
云空2 小时前
《电子专业完整学习路线图(分两套:本科四年版 / 零基础自学速成版)》
科技·学习·学习方法·高考
min(a,b)2 小时前
学习第16天:LangGraph 与 Agent 工作流编排
学习
woshihuanglaoshi3 小时前
鸿蒙技术进阶全景高级成长体系:从初中级到架构师的技能树/学习路径/项目实战/认证体系系统性方法论
学习·华为·harmonyos
AI即插即用3 小时前
即插即用系列 | IEEE TMI PLG-HN:原型学习引导的 CNN-Transformer 混合网络,攻克乳腺肿瘤分割难题
人工智能·深度学习·神经网络·学习·目标检测·cnn·transformer
致Great3 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法
纵有疾風起3 小时前
线性表的定义与基本操作 — 从逻辑结构到 ADT 接口
数据结构·算法·408·线性表·adt
测试_AI_一辰4 小时前
AI Agent 评测最隐蔽的坑-记忆
人工智能·算法·ai·自动化·ai编程
lucas_AI4 小时前
给YOLO检测器插 LoRA,'插对地方'比'插什么'更要命
人工智能·算法
for_ever_love__4 小时前
python基础语法学习: 变量, 输入输出, 运算符
网络·python·学习