#P3356. AGTC
AGTC
描述
设和是某个有限字母表上的两个字符串。我们希望仅通过以下操作将转换为:
- 删除:中的某个字母在的对应位置缺失。
- 插入:中的某个字母在的对应位置缺失。
- 替换:对应位置上的字母不同。
显然,我们希望最小化所有可能的操作次数。
示例
A G T A A G T * A G G C
| | | | | | |
A G T * C * T G A C G C
- 删除:底行的*
- 插入:顶行的*
- 替换:当顶行和底行的字母不同时
这表明,要将转换为,需要进行5次操作(2次替换、2次删除和1次插入)。但如果希望最小化操作次数,可以如下进行:
A G T A A G T A G G C
| | | | | | |
A G T C T G * A C G C
此时仅需4次操作(3次替换和1次删除)。
在本问题中,我们始终固定字符串和,使得的字母数为,的字母数为,且。
每次操作的成本为1,若无需操作则成本为0。
编写一个程序,计算将任意字符串转换为字符串所需的最小操作次数。
输入
输入由字符串和及其各自长度(长度不超过1000)组成。
输出
一个整数,表示将转换为所需的最小操作次数。
输入样例 1
10 AGTCTGACGC
11 AGTAAGTAGGC
输出样例 1
4
来源
马尼拉 2006