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

2026华为OD面试题064:增强的strstr

题目描述

C 语言有个库函数char *strstr(const char *haystack, const char *needle),在字符串 haystack 中查找第一次出现字符串 needle 的位置,未找到返回 null。

现要求实现一个 strstr 的增强函数,可以使用带可选段的字符串来模糊查询,与 strstr 一样返回首次查找到的字符串位置。可选段用方括号标识,表示该位置是可选段中任意一个字符即可满足匹配条件。比如a[bc]表示可以匹配abac。目标字符串中可选段可能出现多次。

输入描述:两行字符串,第一行为源字符串 haystack,第二行为目标字符串 needle(可能含可选段)。

输出描述:首次匹配成功的起始位置(0 基下标),未找到输出 -1。

讲个故事:带通配的查找

普通 strstr 只能找一模一样的子串。现在升级了,目标串里可以塞"可选段",用方括号包起来,表示这一位只要是括号里任意一个字符就行。

比如a[bc]d能匹配abd也能匹配acd。就是在源串里找第一个能对上的位置。

说白了就是把目标串拆成一串"字符约束",然后在源串每个位置试一遍,对上了就返回下标。

核心原理:拆 token 加逐位匹配

把目标串解析成一串 token,每个 token 约束一个字

http://www.jsqmd.com/news/1332617/

相关文章:

  • 二维码扫描技术全解析:从原理到安全实践
  • 蓝顿修缮|深耕北方!全资质仓配一站式,屋面防水 + 高端仿石漆一体化 - 峰说城事
  • Sunshine游戏串流:5步轻松打造你的私人云游戏平台
  • Java日期时间处理实战:从java.time核心API到高并发场景优化
  • 2026深圳闲置名包回收极速通道开通!线上估价+门店直收+当日到账,认准“一证一牌一保单” - 奢侈品回收知识分享
  • OpenStack Cinder 全解:块存储架构、调度过滤器与卷管理实战指南
  • Unity Shader Stencil模板测试:从原理到实战,实现高级溶解与高亮效果
  • 上饶市JS聚合物水泥防水涂料厂家推荐,SBS改性沥青防水卷材厂家哪家好|迪凯龙防水材料上饶服务网点信息核对|电话13117818842地址与到店前准备|2026年5月18日资料更新 - geo88
  • 准格尔旗家里到处漏水发霉?卫生间屋顶外墙全场景漏水原因一次讲透 - 宅安选房屋修缮
  • 运维转大模型:脚本写得溜,为什么 Agent 还是上线就崩?
  • 2026 郑州奢侈品回收痛点,实测易奢福交易体验如何 - 易奢福
  • 广州爱马仕回收这家零差评老铺,把再生资源做成了奢侈品界的“质检总局” - 日常比对手册
  • 跨系统数据分析做不下去,卡在数据搬不齐还是语义建不起来
  • 2026年台州全自动吹瓶机厂家哪家好,高速吹瓶机厂家哪家好?地址电话与到店核对资料 - mobible
  • 天赐范式第125天:大模型自指的算子流解析——从“执行推理“到“反思推理“
  • 台积电3nm/2nm产能狂飙深度解析:AI芯片驱动的先进制程竞赛与算力基础设施新格局
  • 3步掌握:DeepL Chrome翻译插件让网页阅读如此轻松
  • 为可穿戴设备打造低功耗Linux控制器:从内核裁剪到电源管理实战
  • 南京冠状动脉起源异常拒赔:先天性疾病能否获赔?李晓伟律师团队 - 行路心安
  • Verdi调试工具:数字芯片验证中的信号追踪与覆盖率分析实战
  • ThinkPad风扇控制终极指南:三分钟打造你的专属散热方案
  • 铸造工艺全解析:从液态成型到缺陷防控的工程实践
  • 一体化泵闸故障处理厂家常见问题解答(2026最新) - 全域品牌推荐
  • 2026年沈阳喷漆房企业盘点及恒达联创等优质主体信息梳理 - 董不懂啊
  • Windows磁盘分区合并实战与数据安全指南
  • WorkshopDL实战指南:跨平台Steam创意工坊内容获取的终极方案
  • 终极免费PlantUML在线编辑器:5分钟从代码到专业UML图
  • AI应用成本临界点:任务密度、上下文长度与能耗的博弈
  • xxx-job作者的又一重磅开源!一款强大易用的开源API管理平台,实现API的管理、文档、Mock全生命周期
  • 告别网盘限速!八大主流网盘直链下载助手完整指南