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

相关推荐
毕竟是shy哥2 小时前
计算YOLO数据集中每个类的目标数
算法·yolo·机器学习
M78佐菲2 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
圣保罗的大教堂3 小时前
leetcode 1406. 石子游戏 III 困难
leetcode
yi.Ist3 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
晊晌_h4 小时前
嵌入式从0到精通——数据结构总结[特殊字符]
数据结构·算法·排序算法
我找到地球的支点啦4 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
罗西的思考5 小时前
【OpenClaw具身硬件】ZeroClaw 源码阅读笔记(3)--- RAG
人工智能·算法·机器学习
浪里镖客5 小时前
位姿转换矩阵写法-个人习惯(计算机理解其实是相反的)
线性代数·算法·矩阵
骐骥17 小时前
学习:javaScriptProxy和registerJavaScriptProxy有什么区别,能注册多少个对象
学习·鸿蒙
Huathy-雨落江南,浮生若梦7 小时前
Caddy 学习笔记 - 反向代理与 IP 封禁
笔记·学习·tcp/ip