luogu#B3990. [语言月赛 202406] 通配符匹配

[语言月赛 202406] 通配符匹配

题目背景

我们称两个字符 a,ba,b匹配的,当且仅当 a=ba =ba,ba,b 中至少一个是字符 ?\texttt ?(ASCII 值 6363)。例如:

  • x\texttt xx\texttt x 是匹配的;
  • x\texttt x?\texttt ? 是匹配的;
  • ?\texttt ?x\texttt x 是匹配的;
  • ?\texttt ??\texttt ? 是匹配的;
  • x\texttt xy\texttt y 不是匹配的。

我们称两个字符串 sstt 是匹配的,当且仅当 sstt 长度相同,且对应位置上的字符是匹配的。例如,abc??z\texttt{abc??z}a?cx??\texttt{a?cx??} 是匹配的。

题目描述

给定两个字符串 s,ts, t,规定 s(l,r)s(l, r) 表示 ss 的第 ll 个字符到第 rr 个字符组成的字符串(1lrs1 \leq l \leq r \leq |s|)。例如:若 s=luogus = \texttt{luogu},则 s(2,4)=uogs(2,4) = \texttt{uog}

现在,请你求出所有的 l,rl, r,使得 tts(l,r)s(l, r) 匹配。

输入格式

第一行是一个字符串 ss
第二行是一个字符串 tt

输出格式

输出若干行,每行两个整数,表示一组 l,rl,r

ll 从小到大的顺序输出。可以证明,按这个顺序进行输出的方案是唯一的。

luogu
uog

2 4

aabbcc
b??

3 5
4 6

a?b?c?
bcc

3 5
4 6

a?b?c?
b??

2 4
3 5
4 6

提示

数据规模与约定

以下用 nn 表示字符串 s,ts, t 的长度上限。 | 测试点编号 | nn \leq | 特殊约定 | | :-: | :-: | :-: | | 1,21, 2 | 11 | 无 | | 33 | 300300 | A | | 44 | 300300 | B | | 55 | 300300 | C | | 66 | 300300 | 无 | | 77 | 10310^3 | A | | 88 | 10310^3 | B | | 99 | 10310^3 | C | | 1010 | 10310^3 | 无 |

对全部的测试数据,保证 1n1031 \leq n \leq 10^3ts|t|\le |s|s,ts, t 中只含小写英文字母和字符 ?\texttt ?(英文半角,ASCII 为值 6363)。

特殊性质表:

代号 ss 中含有 ?\texttt{?} tt 中含有 ?\texttt{?}
A ×\times ×\times
B \checkmark
C ×\times \checkmark