CF1617A.Forbidden Subsequence

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Forbidden Subsequence

题目描述

给定字符串 SS 和 TT,它们均由小写英文字母组成。保证 TT 是字符串 abc 的一个排列。

请你找到字符串 S′S',即 SS 的字典序最小的一个排列,要求 TT 不是 S′S' 的子序列。

字符串 aa 是字符串 bb 的一个排列,当且仅当每个不同字符在 aa 和 bb 中出现的次数相同。

字符串 aa 是字符串 bb 的一个子序列,当且仅当可以通过删除 bb 中的若干(可以为零或全部)字符得到 aa。

字符串 aa 的字典序小于字符串 bb,当且仅当满足以下条件之一:

  • aa 是 bb 的前缀,且 a≠ba \ne b;
  • 在 aa 和 bb 第一个不同的位置,aa 的字母在字母表中比 bb 的对应字母更靠前。

输入格式

每组测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个字符串 SS(1≤∣S∣≤1001 \le |S| \le 100),由小写英文字母组成。

每个测试用例的第二行包含一个字符串 TT,它是字符串 abc 的一个排列(因此 ∣T∣=3|T| = 3)。

注意所有测试用例中 ∣S∣|S| 的总和没有限制。

输出格式

对于每个测试用例,输出一个字符串 S′S',即 SS 的字典序最小的排列,且 TT 不是 S′S' 的子序列。

说明/提示

在第一个测试用例中,aaaabbc 和 aaaabcb 都比 aaaacbb 字典序小,但它们都包含 abc 作为子序列。

在第二个测试用例中,abccc 是 cccba 的最小排列,且不包含 acb 作为子序列。

在第三个测试用例中,bcdis 是 dbsic 的最小排列,且不包含 bac 作为子序列。

由 ChatGPT 4.1 翻译

样例

7
abacaba
abc
cccba
acb
dbsic
bac
abracadabra
abc
dddddddddddd
cba
bbc
abc
ac
abc
aaaacbb
abccc
bcdis
aaaaacbbdrr
dddddddddddd
bbc
ac

在线编程 IDE

建议全屏模式获得最佳体验