您现在的位置是:首页 > 正文

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

2024-04-01 01:34:28阅读 2

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

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

class Solution {
public:
    int strStr(string haystack, string needle) {
        if(needle.size()==0){
            return 0;
        }
        int length1=haystack.size();
        int length2=needle.size();
        vector<int> next(needle.size());
        //初始化
        next[0]=0;
        int j=0;//前缀的末尾位置,同时也是前后缀相同元素的个数
        int i=1;//后缀的末尾位置
        for(int i=1;i<needle.size();i++){
            while(needle[j]!=needle[i] && j>0){
                j=next[j-1];
            }
            if(needle[j]==needle[i]){
                j++;
            }
            next[i]=j;
        }
        j=0;
        for(int i=0;i<haystack.size();i++){
            while(j>0 && haystack[i]!=needle[j]){
                j=next[j-1];
            }
            if(haystack[i]==needle[j]){
                j++;
            }
            if(j==needle.size()){
                return (i-needle.size()+1);
            }
        }
        
        return -1;
        
    }
};

网站文章

  • (05)es索引创建

    (05)es索引创建

    非结构索引创建点击刷新出现如下:宽宽的框框代表分片,细细的框框代变备份点击信息--》索引信息结构索引创建1.点击复杂查询,输入json--点击易读--json检验--提交{"novel": {"properties": {"title": {"type": "text"}}}}e...

    2024-04-01 01:34:14
  • 已设置spring.main.allow-bean-definition-overriding=true依然报错问题

    可以另外再新建一个application.yml文件,将上面这个配置放在application.yml文件,然后Rebuild Project,启动项目,发现启动成功。查询了很多帖子,IDEA启动项目依然报错。可以试试这种方式解决。

    2024-04-01 01:34:07
  • 2 万字系统总结,带你实现 Linux 命令自由!

    2 万字系统总结,带你实现 Linux 命令自由!

    星标/置顶公众号????,硬核文章第一时间送达!前言Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它。但是学好它却...

    2024-04-01 01:33:42
  • 05-配置Swagger2生成API接口文档

    05-配置Swagger2生成API接口文档

    一、Swagger2介绍前后端分离开发模式中,api文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。及时性 (接口变更...

    2024-04-01 01:33:35
  • 关于vs code如何切换Python版本

    关于vs code如何切换Python版本

    大家在下载vs code后,配置Python环境时,一定会对切换电脑中的Python版本产生疑问,我以前也产生过,不过解决方法很简单。如下, 我这里是Python3.7.7版本,直接点击, 即可弹出选项选择。 ...

    2024-04-01 01:33:28
  • linux连接到mysql,在linux下连接MySQL

    以前说过在Linux下访问SQL Server数据库,今天讲讲如何访问MySQL数据库,访问的方式仍然是具备良好移植性的ODBC接口。在这里ODBC驱动使用的是mysql-connector-odbc...

    2024-04-01 01:33:02
  • RTL8201 以太网PHY芯片 调试记录

    RTL8201 以太网PHY芯片 调试记录

    RTL8201F PHY芯片 以太网芯片 调试记录

    2024-04-01 01:32:56
  • PAT A1043 Is It a Binary Search Tree(25 分)

     1043 Is It a Binary Search Tree(25 分)A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with ke...

    2024-04-01 01:32:51
  • 怎样分析服务器的内存溢出文件,线上系统内存溢出分析方法

    怎样分析服务器的内存溢出文件,线上系统内存溢出分析方法

    点击上方蓝字关注我们一、生产环境操作系统:CentOS6.7JDK版本:jdk1.6.0_45中间件版本:apache-tomcat-6.0.37JVM堆内存配置:-Xms8192m-Xmx8192m...

    2024-04-01 01:32:25
  • 5月份华为认证考试,100%通过率!最高分九百多!

    5月份华为认证考试,100%通过率!最高分九百多!

    考试是最能测试出一个人最近一段时间的学习状态和对知识的掌握度。不然也不会有十年磨一剑只为高考这个道理了。自从西宇教育获得Pearson VUE国际认证考试中心的授权开通了PVUE考试中心。每天来考试的...

    2024-04-01 01:32:17