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 翻译