CF412C Pattern
题目描述
开发者们经常要处理正则表达式模式。模式通常是由字符和元字符组成的字符串,用来规定搜索规则。这些模式常用于检测某个字符串是否符合特定规则。
在本题中,“模式”定义为仅由小写英文字母和问号('?')组成的字符串。模式中的问号是元字符,代表任意一个小写英文字母。我们认为一个字符串与一个模式匹配,当我们可以通过用合适的字母替换问号,使字符串变成该模式。例如,字符串 aba 可以匹配以下模式:???、??a、a?a、aba。
“R1公司”的程序员们喜欢用谜题难倒彼此(包括自己),其中一道谜题如下:给定 $n$ 个长度相同的模式,请你找出一个包含问号最少的模式,使其和每个给定模式都相交。如果存在一个字符串可以同时匹配第一个和第二个模式,则称两个模式“相交”。你能解决这个谜题吗?
输入格式
第一行包含一个正整数 $n$ $(1 \leq n \leq 10^{5})$,表示模式的数量。接下来的 $n$ 行,每行包含一个模式。
保证所有模式只包含小写英文字母和字符 '?',所有模式非空且长度相同。所有模式的总长度不超过 $10^{5}$ 个字符。
输出格式
输出一行,表示问题的答案——与所有给定模式都相交且所含问号数量最少的模式。如果有多个答案,输出任意一个即可。
说明/提示
以第一个样例为例。模式 xab 与所有给定模式都相交。模式 ??? 也相交于所有给定模式,但它包含更多的问号,因此不是最优答案。显然,xab 是最优答案,因为它不包含任何问号。当然还有许多其他最优答案,如 aab、bab、cab、dab 等。
由 ChatGPT 5 翻译