当前位置: 首页 > article >正文

LeetCode-第28题-找出字符串中第一个匹配项的下标

1.题目描述

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 

2.样例描述

3.思路描述

可以让字符串 needle 与字符串 haystack 的所有长度为 mmm 的子串均匹配一次。

为了减少不必要的匹配,每次匹配失败即立刻停止当前子串的匹配,对下一个子串继续匹配。如果当前子串匹配成功,返回当前子串的开始位置即可。如果所有子串都匹配失败,则返回 −1。

4.代码展示

class Solution {
    public int strStr(String haystack, String needle) {
        int n = haystack.length(), m = needle.length();
        for (int i = 0; i + m <= n; ++i) {
            boolean flag = true;
            for (int j = 0; j < m; ++j) {
                if (haystack.charAt(i + j) != needle.charAt(j)) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                return i;
            }
        }
        return -1;
    }
}
int strStr(char * haystack, char * needle){
    int len1 =strlen(haystack);
    int len2 =strlen(needle);

    if(len1<len2)
        return -1;

    int i=0;
    int j=0;
    int t=i;
    while(haystack[i] && needle[j])
    {
         if(haystack[i] == needle[j])
            {
                i++;
                j++;
                continue;
            }
            else
            {
                t=t+1;
                i=t;
                j=0;
            }
        
    }

    if(needle[j] == '\0')
        return t;
    return -1;
}


http://www.kler.cn/a/232339.html

相关文章:

  • 卡尔曼滤波:从理论到应用的简介
  • ESP解释
  • java:接口,抽象,多态的综合小练习
  • 信号-3-信号处理
  • WordPress 6.7 “Rollins”发布
  • 【安全通信】告别信息泄露:搭建你的开源视频聊天系统briefing
  • Rust语言入门(第3篇)
  • Go Context -- 管理请求的上下文信息
  • vue3 之 商城项目—一级分类
  • 删除和清空Hive外部表数据
  • 上位机建立TCP/IP连接:Matlab实现
  • 发文新思路!双流卷积!CWT-DSCNN-MSA基于时序特征、cwt小波时频图的双流卷积融合注意力机制的故障识别程序!直接运行!
  • armbian ddns
  • 海纳思NAS盒子设置网卡静态IP
  • 基于BatchNorm的模型剪枝【详解+代码】
  • 浅谈instant run
  • 飞天使-linux操作的一些技巧与知识点8-zabbix6.0 容器搭建
  • C语言到底是高级语言还是低级语言?
  • 容器基础:Docker 镜像如何保证部署的一致性?
  • VMware17上安装centos7.9
  • SSM框架,Maven的学习(上)
  • Mybatis中的sql-xml延迟加载机制
  • DBeaver连接mysql时报错com.mysql.cj.jdbc.Driver的解决方法【修改驱动下载的maven地址和重新下载驱动】
  • 从github上拉取项目到pycharm中
  • 【数据分享】1929-2023年全球站点的逐月平均能见度(Shp\Excel\免费获取)
  • C++ “万能血“ void*指针