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

相关推荐
那山川几秒前
ros学习笔记1~14
笔记·学习·机器人
Oueii3 分钟前
嵌入式LinuxC++开发
开发语言·c++·算法
sw1213894 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
2501_924952695 分钟前
C++中的适配器模式
开发语言·c++·算法
智驱力人工智能11 分钟前
馆藏文物预防性保护依赖的图像分析技术 文物损害检测 文物破损检测 文物损害识别误报率优化方案 文物安全巡查AI系统案例 智慧文保AI监测
人工智能·算法·安全·yolo·边缘计算
wuguan_11 分钟前
Halcon中值滤波,均值滤波,高斯滤波
算法·halcon
☆56612 分钟前
C++安全编程指南
开发语言·c++·算法
tobias.b13 分钟前
机器学习 超清晰通俗讲解 + 核心算法全解(深度+易懂版)
人工智能·算法·机器学习
budingxiaomoli22 分钟前
优选算法--bfs解决FloodFill问题
算法·宽度优先
似水明俊德26 分钟前
13-C#.Net-设计模式六大原则-学习笔记
笔记·学习·设计模式·c#·.net