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

相关推荐
夏鹏今天学习了吗3 小时前
【LeetCode热题100(52/100)】课程表
算法·leetcode·职场和发展
祁思妙想3 小时前
【LeetCode100】--- 101.重排链表【思维导图+复习回顾】
算法·leetcode·链表
Dream it possible!3 小时前
LeetCode 面试经典 150_链表_随机链表的复制(59_138_C++_中等)
c++·leetcode·链表
雨奔3 小时前
Flask 学习路线图
数据库·学习·flask
文火冰糖的硅基工坊3 小时前
[人工智能-大模型-69]:模型层技术 - 计算机处理问题的几大分支:数值型性问题、非数值型问题?
算法·决策树·机器学习
YuforiaCode3 小时前
学习从0开始使用内网穿透工具cpolar(个人记录、详细图解)
学习
OG one.Z4 小时前
05_逻辑回归
算法·机器学习·逻辑回归
lzptouch4 小时前
逻辑斯蒂回归(Logistic Regression)算法
算法·数据挖掘·回归
Yupureki5 小时前
从零开始的C++学习生活 12:AVL树全面解析
c语言·数据结构·c++·学习·visual studio