#ABC370C. 单词阶梯

单词阶梯

单词阶梯

题目描述

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

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

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

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

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

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

  • S1S2Si1=T1T2Ti1S_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) 字典序更小,当且仅当存在整数 1jM1 \le j \le M,同时满足以下两个条件:

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

输入格式

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

SS
TT

输出格式

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

第 1 行输出 MM 的值。

i+1i + 1(1iM)(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

数据范围

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