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

每日一道算法题(九)

题目来源:28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)

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

整体思路很简单:先看第一个字母匹配是否匹配,再逐个检查

遇到的问题是:

①逻辑要求判断完全匹配此返回第一个标号,开始使用的continue,是继续执行此循环的下一次,错误,加入一个判断bool作为判断条件

②越界错误:最外层循环不能设置为i<n,因为如果m不为1的话,必定最后一位比较会越界;而条件设为i<n-m的话,如果遇到n=m=1的情况会出现错误;所以应该设为n-m+1

int strStr(string haystack, string needle) {int n=haystack.length();int m=needle.length();bool ack=0;for(int i=0;i<n-m+1;i++){if(haystack[i]==needle[0]){ack=1;for (int j=0;j<m;j++){if(haystack[i+j]!=needle[j]){ack=0;}  }if(ack)return i;}}return -1;}

http://www.dtcms.com/a/300104.html

相关文章:

  • 【C/C++】Undefined reference: memset_s
  • 【seismic中的颜色】
  • ETF历史高频逐笔分钟数据解析
  • FastAPI入门:demo、路径参数、查询参数
  • Linux进程替换
  • Dynamic Model in RL
  • 渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
  • 【数据结构】二叉树初阶详解(二):实现逻辑与代码拆解(超详版)
  • 聚类-一种无监督分类算法
  • 中文语音识别与偏误检测系统开发
  • Redis的下载和安装(Linux)
  • 亚马逊全球物流(AGL)与Amazon SEND双重升级:重塑跨境电商物流新生态​
  • FastAPI入门:安装、Pydantic、并发和并行
  • Python应用:三局两胜制石头剪刀布游戏
  • VS Code + LaTeX 绘制电气图完全指南(含 PlantUML 样式参考)
  • 典型的 Vue 3 项目目录结构详解
  • Android中ViewStub和View有什么区别?
  • 过油防溅:3 步搞定 油星乱蹦
  • 具身视觉语言导航算法学习笔记
  • C++20 协程
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-27,(知识点:信号完整性,信号反射,串扰,时延,抖动,衰减)
  • 物联网统一网关:多协议转换与数据处理架构设计
  • useCallback/useMemo
  • Item11:在operator=中处理自我赋值
  • [极客大挑战 2019]FinalSQL--布尔盲注
  • 【web应用】如何进行前后端调试Debug? + 前端JavaScript调试Debug?
  • 内置两大模型,Whisper视频语音转文字,支持批量处理,完全免费!
  • 车载诊断刷写 --- Flash关于擦除和写入大小
  • GStreamer中Element(元素)
  • sendfile系统调用及示例