CF1005B Delete from the Left

题目描述

给定两个字符串 $s$ 和 $t$。每次操作,你可以选择任意一个字符串,删除其第一个(即最左边的)字符。每进行一次操作,该字符串的长度减少 $1$。如果字符串已经为空,则不能选择该字符串进行操作。 例如: - 对字符串 "where" 进行一次操作,结果为字符串 "here"; - 对字符串 "a" 进行一次操作,结果为一个空字符串 ""。 你的任务是用最少的操作次数,使得这两个字符串相等。最终,两字符串都可能变为空字符串,此时它们也被认为是相等的。在这种情况下,答案显然是初始两个字符串长度之和。 请编写程序,求出使给定两个字符串 $s$ 和 $t$ 相等所需的最少操作次数。

输入格式

输入的第一行包含字符串 $s$。输入的第二行包含字符串 $t$。两个字符串均只包含小写拉丁字母。每个字符串的长度在 $1$ 到 $2\cdot10^5$ 之间(包含 $1$ 和 $2\cdot10^5$)。

输出格式

输出所需的最少操作次数。最终,两字符串都可能变为空字符串,此时它们也被认为是相等的。在这种情况下,答案显然是给定字符串长度之和。

说明/提示

在第一个样例中,你应分别对第一个字符串和第二个字符串各进行一次操作。结果两个字符串都变为 "est"。 在第二个样例中,应对字符串 "codeforces" 进行 $8$ 次操作,结果字符串变为 "codeforces" $\to$ "es"。对字符串 "yes" 进行一次操作,结果为 "yes" $\to$ "es"。 在第三个样例中,只有将两个字符串全部删除才能使它们相等。即最终两个字符串都为空。 在第四个样例中,应删除第二个字符串的第一个字符。 由 ChatGPT 4.1 翻译