CF533E Correcting Mistakes
题目描述
分析人们在输入搜索查询时发生的错误是一项复杂而有趣的工作。由于没有明确的方法能够判断用户最初想输入的查询内容,我们不得不使用各种启发式方法。
Polycarp 需要编写一段程序,对给定的两个单词,检查它们是否可能是由于笔误而从同一个单词变成的。Polycarpus 认为最常见的笔误就是在输入单词时恰好漏掉了一个字母。
请实现一个程序,给定两个长度均为 $n$ 的不同单词 $S$ 和 $T$,判断有多少个长度为 $n+1$ 的单词 $W$ 满足如下条件:只需删除 $W$ 中的恰好一个字符,就可以分别得到 $S$ 和 $T$。$S$ 和 $T$ 由小写英文字母组成,$W$ 也应由小写英文字母组成。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 100000$),表示单词 $S$ 和 $T$ 的长度。
第二行包含单词 $S$。
第三行包含单词 $T$。
单词 $S$ 和 $T$ 均由小写英文字母组成。保证 $S$ 和 $T$ 不相同。
输出格式
输出一个整数,表示存在多少个不同的单词 $W$ 满足条件,使得删除其中恰好一个字符后可以分别得到 $S$ 和 $T$。
说明/提示
在第一个样例中,两个给定单词仅能分别通过删除 "treading"(被删除的字母用粗体标出)中的某个字母获得。
在第二个样例中,无法从同一个单词通过删除一个字母分别得到这两个单词。
在第三个样例中,可以由单词 "tory" 或 "troy" 通过删除一个字母分别得到这两个单词。
由 ChatGPT 5 翻译