好奇号(Curiosity)是一辆正在火星盖尔撞击坑(Gale Crater)进行探测的火星车。最近,它在火星土壤中发现了水的证据,这将使未来载人任务的规划变得更加容易。
好奇号可以直接与地球通信,速度最高可达 32 Kbit/s,但信号在地球和火星之间传输平均需要 14 分钟 6 秒。
“你刚刚看到一块石头并踩下了刹车,但你知道火星车已经经过了那块石头,”火星车驾驶员 Matt Heverly 解释道,“所以我们只是规划路线,然后写下一系列简单的文本指令:向前移动一米、向左转、拍照等等。”
有时需要对一些突发事件做出非常快速的反应。例如,如果摄像头看到了有趣的东西,你可能想要改变火星车的路线以拍摄额外的照片。为此,你可以发送一个格式为 s/string/replacement/g 的替换命令。这会将所有出现的 string(从最左侧开始)替换为 replacement。
更正式地说,如果 $A$ 是一个非空字符串,$B$ 是一个字符串,那么将替换命令 s/A/B/g 应用于字符串 $S$ 时,你应该执行以下操作:
- 找到 $S$ 中最左侧出现的 $A$,使得 $S = S_L + A + S_R$。
- 如果不存在这样的出现,则停止。此时,$S$ 即为结果。
- 令 $R$ 为将
s/A/B/g应用于 $S_R$ 的结果。 - 结果为 $S_L + B + R$。
这意味着:
- 如果 $S$ 中有两个重叠的 $A$ 出现,则仅替换最左侧的一个。例如,将 “s/aba/c/g” 应用于 “abababa” 会得到 “cbc”:在替换第一个 “aba” 后,字符串变为 “cbaba”,此后只能替换最后一个 “aba”。
- 任何替换都不会使用之前替换的结果。例如,将 “s/a/ab/g” 应用于 “a” 得到 “ab”,将 “s/a/ba/g” 应用于 “a” 得到 “ba”。
你知道命令越长,传输所需的时间就越长。因此,你必须编写一个程序,找到将初始字符串转换为最终字符串的最短命令。
输入格式
第一行包含初始字符串和最终字符串。两个字符串均为非空,且长度不超过 2000 个字符。字符串仅包含英文字母、空格和标点符号(逗号、冒号、分号和连字符:‘,’, ‘:’, ‘;’, ‘-’)。给定的两个字符串不相等。
输出格式
输出将初始字符串转换为最终字符串且长度最短的替换命令。如果有多个最短替换命令,输出其中任意一个。
样例
输入 1
move left, move right; move up move left, move down, move up
输出 1
s/right;/down,/g
输入 2
If not found: move x; else move -x If found: move x; else move -x
输出 2
s/ not//g
输入 3
abababa cbc
输出 3
s/aba/c/g