题目描述
DNA 分子是人类遗传信息的载体,它间接地指导蛋白质的合成。DNA 分子是由四种核苷酸组成的长链,这四种核苷酸分别是腺嘌呤核苷酸(用 A 代表)、鸟嘌呤核苷酸(用 G 代表)、胞嘧啶核苷酸(用 C 代表)和胸腺嘧啶核苷酸(用 T 代表)。习惯上用一个字符集为 {A,T,C,G} 的字符串来表示一个 DNA 分子序列,如 CGTTAGA。
在生物进化过程中,DNA 分子可能发生各种各样的突变。这种突变形成了生物遗传信息的改变,从而使生物得以分化,构成了生物的多样性。
主要的突变有三种:
- 在一个 DNA 序列中插入一个新的核苷酸,
- DNA 序列中丢失了一个核苷酸,
- DNA 序列中的某个核苷酸被另一个核苷酸所取代。
所谓两个 DNA 序列的一个比对是寻找一种排列方式,使得两个 DNA 序列在同样的位置上有相同的核苷酸,而若在同样的位置上两个 DNA 序列的核苷酸不同,则是由三种突变之一得到。例如,对两个 DNA 序列 T1=ATCAG,T2=ACTAG,可以按如下方式比对:(− 表示空白)
比对一:
| T1 |
T2 |
| A |
| T |
− |
| C |
| − |
T |
| A |
| G |
也可以按如下方式比对:
比对二:
| T1 |
T2 |
| A |
| T |
C |
| C |
T |
| A |
| G |
如果两个 DNA 序列在相同的位置上有越多相同的核苷酸对,则表明它们之间越相似,即它们存在功能上的相似性和进化史上的亲缘关系。
对于两个 DNA 序列的一个比对,规定如下得分方式:
- 一个同样的位置上有相同的核苷酸对,则可得 1 分;
- 一个同样的位置上有不同的核苷酸对,则得 0 分;
- 如果在某个位置上一个序列有核苷酸,而另一个序列在该位置上为 −,则得 −2 分。
例如,比对一的得分是 0 分,比对二的得分是 3 分。
问题是:对于两个 DNA 序列,寻找一种比对方式,使得它们的得分最高。
输入格式
输入数据共有两行。
第一行为 DNA 序列 T1,第二行为 DNA 序列 T2。序列的长度不大于 1000。序列中的字母是英文小写或者大写字母。
输出格式
程序运行结束时,在屏幕上输出所找出的最大的得分。
Atcag
Actag
3