#P12597. 穿睡衣军训

    ID: 14103 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>模拟字符串有限状态自动机双指针 two-pointer

穿睡衣军训

背景

在本题中,我们称一个串 xx 是一个串 yy 的子串当且仅当在 yy 开头和结尾删除若干个(可以为 00 个)字符后得到的字符串与 xx 相同。例如,bc\texttt{bc},abc\texttt{abc},a\texttt{a},abcd\texttt{abcd} 都是字符串 abcd\texttt{abcd} 的子串,但 abd\texttt{abd} 不是。

我们称一个串 xx 是一个串 yy 的子序列当且仅当在 yy 中删除若干个(可以为 00 个)字符后得到的字符串与 xx 相同。例如,bc\texttt{bc},abc\texttt{abc},a\texttt{a},abcd\texttt{abcd},abd\texttt{abd} 都是字符串 abcd\texttt{abcd} 的子序列,但 dcba\texttt{dcba} 不是。

特别的,空串是任何串的子串,也是任何串的子序列。

题目描述

给定两个字符串 s,ts,t,扶苏想让你求出一个字符串 xx,满足:

  • xx 是 ss 的子串。
  • xx 是 tt 的子序列。
  • 在所有满足前述两条的字符串中,xx 的长度最长。
  • 在所有满足前述三条的字符串中,xx 的字典序最小。

请你帮她求出这样的字符串 xx。

输入格式

本题单个测试点内有多组测试数据,第一行是一个整数,表示数据组数 TT。

对每组数据,输入两行,每行一个字符串,依次表示 ss 和 tt。

输出格式

对每组数据,输出一行一个字符串,表示你找到的 xx。
特别的,如果 xx 是空串,你需要输出一个空行。

3
xyzdabc
xaybzc
abc
xyz
abbcd
aabbdcd
abc

abbcd

提示

数据规模与约定

用 ∣x∣|x| 表示字符串 xx 的长度。

  • 对 10%10\% 的数据,T=0T = 0。
  • 对 30%30\% 的数据,∣s∣=1|s| = 1。
  • 对 50%50\% 的数据,∣s∣,∣t∣≤10|s|, |t| \leq 10。
  • 对 80%80\% 的数据,∣s∣,∣t∣≤100|s|, |t| \leq 100。
  • 对 100%100\% 的数据,保证 0≤T≤100 \leq T \leq 10,1≤∣s∣≤1031 \leq |s|\leq 10^3,1≤∣t∣≤1051 \leq |t| \leq 10^5,输入字符串只含小写英文字母。