首页 > 其他分享 >力扣28 找出字符串中第一个匹配项的下标

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

时间:2022-12-23 16:56:36浏览次数:41  
标签:下标 needle 28 力扣 字符串 匹配 haystack 文本

题目:

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

示例:

输入:haystack = "sadbutsad", needle = "sad"
输出:0
解释:"sad" 在下标 0 和 6 处匹配。
第一个匹配项的下标是 0 ,所以返回 0 。

 思路:

KMP的经典思想:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。

暴力匹配:

 

 两层循环:一层遍历文本串,第二层遍历模式串,一一匹配,如果发现不匹配,则从文本串的第二位重新开始匹配,直至成功。

标签:下标,needle,28,力扣,字符串,匹配,haystack,文本
From: https://www.cnblogs.com/cjhtxdy/p/17001056.html

相关文章

  • 力扣每日一题2022.12.23---2011. 执行操作后的变量值
    存在一种仅支持4种操作和1个变量X的编程语言:   ++X和X++使变量X的值加1   --X和X--使变量X的值减1最初,X的值是0给你一个字符串数组operati......
  • 力扣 剑指offer58 左旋转字符串
    题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋......
  • 283. 移动零
    给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例1:输入:nums=[0,......
  • SQL0289N Unable to allocate new pages in table space
    db2-tvfzhangsan.sql报错:"SQL0289NUnabletoallocatenewpagesintablespace"USERSPACE1".SQLSTATE=57011"表空间大小不够了可以在备份库下执行db2listtablespace......
  • 力扣151 反转字符串中的单词
    题目:给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。返回单词顺序颠倒且单词......
  • 力扣-581-最短无序连续子序列
    能不能把问题转化为找第一个逆序对和最后一个逆序对 intfindUnsortedSubarray(vector<int>&nums){ intres=0; intstartIndex=-1,endIndex=-1; for(inti=......
  • AtCoder Beginner Contest 282
    https://atcoder.jp/contests/abc282A-GeneralizedABC原题链接题意给出一个数\(k\),输出A~Z中的前\(k\)个字母。分析从\(0\)到\(k\)枚举,将A加上\(i\)输......
  • 力扣-538-把二叉搜索树转换为累加树
    intpreSum=0; voidtraversal(TreeNode*root){ if(!root)return; traversal(root->right); root->val+=preSum; preSum=root->val; traversal(roo......
  • 力扣-406-根据身高重建队列
    第一眼觉得有一种逆向单调栈的既视感看评论区举了一个很生动形象的例子,自己还是写不出来vector<vector<int>>reconstructQueue(vector<vector<int>>&people){ vector......
  • Android平台GB28181设备接入模块分辨率发生变化怎么办?
    技术背景我们在做Android平台gb28181设备接入模块的时候,遇到这样的情况,比如横竖屏分辨率不锁定,采集摄像头的时候,可以实现,横屏状态采集横屏,竖屏状态采集竖屏,简单来说,横屏状态......