B3990 [语言月赛 202406] 通配符匹配
题目背景
我们称两个字符 $a,b$ 是**匹配**的,当且仅当 $a =b$ 或 $a,b$ 中至少一个是字符 $\texttt ?$(ASCII 值 $63$)。例如:
- $\texttt x$ 和 $\texttt x$ 是匹配的;
- $\texttt x$ 和 $\texttt ?$ 是匹配的;
- $\texttt ?$ 和 $\texttt x$ 是匹配的;
- $\texttt ?$ 和 $\texttt ?$ 是匹配的;
- 但 $\texttt x$ 和 $\texttt y$ **不是**匹配的。
我们称两个字符串 $s$ 和 $t$ 是匹配的,当且仅当 $s$ 和 $t$ 长度相同,且对应位置上的字符是匹配的。例如,$\texttt{abc??z}$ 和 $\texttt{a?cx??}$ 是匹配的。
题目描述
给定两个字符串 $s, t$,规定 $s(l, r)$ 表示 $s$ 的第 $l$ 个字符到第 $r$ 个字符组成的字符串($1 \leq l \leq r \leq |s|$)。例如:若 $s = \texttt{luogu}$,则 $s(2,4) = \texttt{uog}$。
现在,请你求出所有的 $l, r$,使得 $t$ 和 $s(l, r)$ 匹配。
输入格式
第一行是一个字符串 $s$。
第二行是一个字符串 $t$。
输出格式
输出若干行,每行两个整数,表示一组 $l,r$。
按 $l$ 从小到大的顺序输出。可以证明,按这个顺序进行输出的方案是唯一的。
说明/提示
### 数据规模与约定
以下用 $n$ 表示字符串 $s, t$ 的长度上限。
| 测试点编号 | $n \leq$ | 特殊约定 |
| :-: | :-: | :-: |
| $1, 2$ | $1$ | 无 |
| $3$ | $300$ | A |
| $4$ | $300$ | B |
| $5$ | $300$ | C |
| $6$ | $300$ | 无 |
| $7$ | $10^3$ | A |
| $8$ | $10^3$ | B |
| $9$ | $10^3$ | C |
| $10$ | $10^3$ | 无 |
对全部的测试数据,保证 $1 \leq n \leq 10^3$,$|t|\le |s|$,$s, t$ 中只含小写英文字母和字符 $\texttt ?$(英文半角,ASCII 为值 $63$)。
特殊性质表:
| 代号 | $s$ 中含有 $\texttt{?}$ | $t$ 中含有 $\texttt{?}$ |
| :-: | :-: | :-: |
| A | $\times$ | $\times$ |
| B | $\checkmark$ | $\times$ |
| C | $\times$ | $\checkmark$ |