#ABC370C. 单词阶梯

单词阶梯

单词阶梯

题目描述

给你两个由小写英文字母组成的字符串 SS 和 TT。这里,SS 与 TT 长度相等。

令 XX 为空数组,重复以下操作直到 SS 等于 TT:

修改 SS 中的一个字符,并将 SS 追加到 XX 的末尾。

求按这种方式得到的元素个数最少的字符串数组 XX。若元素个数最少的数组有多个,求其中字典序最小的一个。

字符串数组上的字典序是什么?

长度为 NN 的字符串 S=S1S2…SNS = S_1 S_2 \ldots S_N 比长度为 NN 的字符串 T=T1T2…TNT = T_1 T_2 \ldots T_N 字典序更小,当且仅当存在整数 1≤i≤N1 \le i \le N,同时满足以下两个条件:

  • S1S2…Si−1=T1T2…Ti−1S_1 S_2 \ldots S_{i-1} = T_1 T_2 \ldots T_{i-1}
  • SiS_i 在字母表中比 TiT_i 更靠前。

有 MM 个元素的字符串数组 X=(X1,X2,…,XM)X = (X_1,X_2,\ldots,X_M) 比有 MM 个元素的字符串数组 Y=(Y1,Y2,…,YM)Y = (Y_1,Y_2,\ldots,Y_M) 字典序更小,当且仅当存在整数 1≤j≤M1 \le j \le M,同时满足以下两个条件:

  • $(X_1,X_2,\ldots,X_{j-1}) = (Y_1,Y_2,\ldots,Y_{j-1})$
  • XjX_j 比 YjY_j 字典序更小。

输入格式

输入按以下格式从标准输入给出:

SS
TT

输出格式

设目标数组的元素个数为 MM。输出 M+1M + 1 行。

第 1 行输出 MM 的值。

第 i+1i + 1 行 (1≤i≤M)(1 \le i \le M) 输出数组的第 ii 个元素。

样例

adbe
bcbc
3
acbe
acbc
bcbc

初始时,S=S = adbe。

通过如下操作可以得到 X=(X = ( acbe ,, acbc ,, bcbc )):

将 SS 改为 acbe,并将 acbe 追加到 XX 末尾。

将 SS 改为 acbc,并将 acbc 追加到 XX 末尾。

将 SS 改为 bcbc,并将 bcbc 追加到 XX 末尾。

abcde
abcde
0
afwgebrw
oarbrenq
8
aawgebrw
aargebrw
aarbebrw
aarbebnw
aarbebnq
aarbeenq
aarbrenq
oarbrenq

数据范围

  • SS、TT 是由小写英文字母组成的字符串,长度在 11 到 100100 之间(含两端)。
  • SS 与 TT 的长度相等。
难度 普及
通过率 —
尝试 0
通过 0
ID
3412
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签