华为OD机考2025B卷 - 字符串通配符 (Java & Python& JS & C++ & C )

最新华为OD机试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看

2025华为od 机试2025B卷-华为机考OD2025年B卷

题目描述

问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。\

要求:

实现如下2个通配符:

  • * :匹配0个或以上的字符(注:能被*和?匹配的字符仅由英文字母和数字0到9组成,下同)
  • :匹配1个字符

注意:匹配时不区分大小写。

输入描述

通配符表达式: 一组字符串。

输出描述

返回不区分大小写的匹配结果,匹配成功输出true,匹配失败输出false。

示例1

输入

te*t
te123t

输出

true

说明

*”转换为[0-9a-z]{0,},正则表达式:te[0-9a-z]{0,}t

匹配说明: “te” + 任意多个字母数字 + “t”,匹配“te123t”

示例2

输入

**soft
nezhasoft

输出

true

解题思路

  1. 递归回溯法:使用递归函数探索所有可能的匹配方式,遇到通配符时尝试不同的匹配策略。

  2. 基本情况处理

    • 当模式串匹配完时,文本串也必须匹配完才算成功
    • 当文本串匹配完但模式串还有剩余时,只有模式串剩余部分全为’*'才能匹配成功
  3. 通配符处理

    • ‘*’:可以匹配0个或多个有效字符(字母或数字)
    • ‘?’:只能匹配1个有效字符(字母或数字)
    • 普通字符:必须精确匹配
  4. 大小写不敏感:将所有字符转为小写后再进行匹配

算法流程

  1. 递归匹配函数

    • 参数:模式串、模式串当前位置、文本串、文本串当前位置
    • 返回值:布尔值,表示是否匹配成功
  2. 递归终止条件

    • 模式串已匹配完:检查文本串是否也匹配完
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值