题解:B3990 [语言月赛 202406] 通配符匹配

· · 题解

Source & Knowledge

2024 年 6 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察字符串。

文字题解

【思路分析】

使用暴力枚举的算法来找出所有可能的 l, r 对,使得 ts(l, r) 匹配。下面是该算法的文字描述:

首先,读入代表题目中的字符串 st,计算出s的长度lenst的长度lent

遍历所有可能的起始位置 i(从 0lens-lent),以 i 为起点,尝试从 s 中截取一个长度为 lent 的子串与t进行匹配。

对于每一个起始位置 i,使用一个内部循环遍历 t 的所有字符,并检查 s 中对应位置的字符是否和 t 中的字符匹配(即相等或者至少有一个是?)。如果在任何一个位置发现st的字符不匹配,则将flag设置为false,并跳出内部循环。

如果 flag 在内部循环结束后仍然为 true,则说明以 i 为起点的子串与 t 匹配,此时输出 l=i+1r=i+lent

视频题解

等待上传

视频题解

等待上传