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

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

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

题目描述:

在这里插入图片描述

题解思路:

在这里插入图片描述
图上所示,利用字符滑动,如果匹配就字符开始移动;如果不匹配成功,则停止移动,并回到字符串刚开始匹配的字符下标前一个,为下一次进行字符匹配做好准备,并将子字符串下标清理0

代码

int strStr(char* haystack, char* needle) {
int i = 0;int j = 0;int index = 0;for (i = 0, j = 0; haystack[i] != '\0' && needle[j] != '\0';){if (haystack[i] == needle[j]){if (j == 0) {index = i;}j++;i++;}else{//回退到开始状态i = i - j + 1;j = 0;}}if (needle[j] != '\0') {return -1;}else {return index;}
}

官方题解

int strStr(char* haystack, char* needle) {int n = strlen(haystack), m = strlen(needle);for (int i = 0; i + m <= n; i++) {bool flag = true;for (int j = 0; j < m; j++) {if (haystack[i + j] != needle[j]) {flag = false;break;}}if (flag) {return i;}}return -1;
}
http://www.lryc.cn/news/487654.html

相关文章:

  • 面向FWA市场!移远通信高性能5G-A模组RG650V-NA通过北美两大重要运营商认证
  • Matlab实现北方苍鹰优化算法优化随机森林算法模型 (NGO-RF)(附源码)
  • 搭建环境 配置编译运行 mpi-test-suite
  • 夜神模拟器启动报错:虚拟机启动失败 请进行修复 关闭hyper-v
  • 投资策略规划最优决策分析
  • 一篇保姆式虚拟机安装ubantu教程
  • 缓冲区的奥秘:解析数据交错的魔法
  • CentOS 7.9 搭建本地Yum源
  • 【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)
  • MATLAB和C++及Python流式细胞术
  • Vue3 pinia使用
  • tdengine学习笔记-建库和建表
  • Django数据迁移出错,解决raise NodeNotFoundError问题
  • 景联文科技:以全面数据处理服务推动AI创新与产业智能化转型
  • MySQL学习/复习7表的内外连接
  • Spring Cloud入门笔记2(OpenFeign)
  • 小程序中模拟发信息输入框,让textarea可以设置最大宽以及根据输入的内容自动变高的方式
  • 学习HTML第二十九天
  • 汽车安全再进化 - SemiDrive X9HP 与环景影像系统 AVM 的系统整合
  • QString 转 char*问题与方法(const_cast的使用问题)
  • flink cdc 应用
  • MyBlog(三) -- APP的应用
  • docker有哪些网络模式
  • npoi 如何设置单元格为文本类型
  • Vue3、Vite5、Primevue、Oxlint、Husky9 简单快速搭建最新的Web项目模板
  • DataStream编程模型之数据源、数据转换、数据输出
  • 海康IPC接入TRTC时,从海康中获取的数据显示时色差不正确
  • 『VUE』31. 生命周期的应用(详细图文注释)
  • Mybatis框架之建造者模式 (Builder Pattern)
  • Java从入门到精通笔记篇(十三)