#P16539. [Dapc2021]git mv
[Dapc2021]git mv
题目背景
在开发过程中,你刚刚把一个文件从一个路径移动到了另一个路径。为了让团队成员理解这次变动,你希望用一个尽可能短的字符串描述这次路径替换,而不依赖版本管理软件。
源路径和目标路径都是合法的 Unix 路径:它们由小写字母和 / 组成,非空,不以 / 开头或结尾,也不包含连续的两个 /。
题目描述
给定源路径和目标路径。你需要输出一个最短的字符串,格式为:
A{B => C}D
它表示源路径为 ABD,目标路径为 ACD。在拼接时,如果出现连续的两个 /,应当把它们视为一个 /。
例如,如果文件从:
a/c
移动到:
a/b/c
可以表示为:
a/{ => b}/c
这里表示源路径是 a/c,而不是 a//c。
输出需要满足:
- 为空,或者以
/结尾; - 为空,或者以
/开头; - 和 若非空,则不能以
/开头或结尾。
你需要在满足上述条件的所有描述中,输出长度最短的一个。
输入格式
输入包含两行。
第一行为源路径。
第二行为目标路径。
输出格式
输出一个最短的替换描述字符串。
样例 1
输入
www/public/passwords
private/passwords
输出
{www/public => private}/passwords
样例 2
输入
home/linus/downloads/image
home/linus/pictures/recent/image
输出
home/linus/{downloads => pictures/recent}/image
数据范围与说明
两个路径长度均不超过 。
两个路径均不以 / 开头或结尾,不包含连续的 /。
每个路径中,不会出现重复的目录名。
源路径与目标路径保证不同。