CF427D Match & Catch
题目描述
警察总部正在监控不同频率的信号。他们从两个不同的频率获取了两条疑似加密的字符串 $s_{1}$ 和 $s_{2}$ 作为信号。他们怀疑这两个字符串分别来自两个不同的罪犯,且这些罪犯正在策划某些恶行。
现在,他们尝试在这两个字符串中找到最短的公共子串。该子串在 $s_{1}$ 和 $s_{2}$ 中都必须只出现一次。
给定两个仅由小写拉丁字母组成的字符串 $s_{1}$ 和 $s_{2}$,请找出最短的长度的公共子串 $p$,其中 $p$ 在 $s_{1}$ 中唯一,且在 $s_{2}$ 中也唯一。关于子串和唯一性的正式定义见下方提示。
输入格式
第一行为字符串 $s_{1}$,第二行为字符串 $s_{2}$,满足 $1 \leq |s_{1}|, |s_{2}| \leq 5000$。两个字符串均只包含小写拉丁字母。
输出格式
输出最短长度的公共唯一子串。如果不存在这样的子串,输出 $-1$。
说明/提示
设有字符串 $a = a_1a_2a_3...a_{|a|}$,其中 $|a|$ 表示字符串 $a$ 的长度,$a_i$ 表示字符串 $a$ 的第 $i$ 个字母。
我们称 $a_{l}a_{l+1}a_{l+2}...a_{r}$ $(1\leq l\leq r\leq |a|)$ 为字符串 $a$ 的子串 $[l, r]$。
如果且仅如果不存在一对 $l_1, r_1$,使得 $l_1 \neq l$ 并且 $a_{l_1}a_{l_1+1}...a_{r_1}$ 等于 $a_{l}a_{l+1}...a_{r}$,则称子串 $[l, r]$ 在 $a$ 中是唯一的。
由 ChatGPT 5 翻译