java dna框架_java实现第三届蓝桥杯DNA对比

DNA对比

脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。

DNA携带的遗传信息可以用形如:AGGTCGACTCCA… 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。

为了简化问题,我们假设,DNA在复制的时候可能出现的偏差是(理论上,对每个碱基被复制时,都可能出现偏差):

1. 漏掉某个脱氧核苷酸。例如把 AGGT 复制成为:AGT

错码,例如把 AGGT 复制成了:AGCT

重码,例如把 AGGT 复制成了:AAGGT

如果某DNA串a,最少要经过 n 次出错,才能变为DNA串b,则称这两个DNA串的距离为 n。

例如:AGGTCATATTCC 与 CGGTCATATTC 的距离为 2

你的任务是:编写程序,找到两个DNA串的距离。

【输入、输出格式要求】

用户先输入整数n(n<100),表示接下来有2n行数据。

接下来输入的2n行每2行表示一组要比对的DNA。(每行数据长度<10000)

程序则输出n行,表示这n组DNA的距离。

例如:用户输入:

3

AGCTAAGGCCTT

AGCTAAGGCCT

AGCTAAGGCCTT

AGGCTAAGGCCTT

AGCTAAGGCCTT

AGCTTAAGGCTT

则程序应输出:

1

1

2

【注意】

请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

请把所有函数写在同一个文件中,调试好后,拷贝到【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

源代码中不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。

例如,不能使用CString类型(属于MFC类库),不能使用randomize, random函数(不属于ANSI C++标准)

import java.util.Scanner;

public class Main {

public static int n;

public static String[] arrayA;

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

n = in.nextInt();

arrayA = new String[2 * n + 1];

in.nextLine();

for(int i = 1;i <= n;i++) {

arrayA[2 * i - 1] = in.nextLine();

arrayA[2 * i] = in.nextLine();

}

int[] result = new int[n + 1];

for(int i = 1;i <= n;i++) {

String A = arrayA[2 * i - 1];

String B = arrayA[2 * i];

int lenA = A.length();

int lenB = B.length();

int[][] dp = new int[lenA + 1][lenB + 1];

for(int k = 0;k < lenA;k++)

dp[k][0] = k;

for(int k = 0;k < lenB;k++)

dp[0][k] = k;

for(int a = 1;a <= lenA;a++) {

for(int b = 1;b <= lenB;b++) {

if(A.charAt(a - 1) == B.charAt(b - 1))

dp[a][b] = dp[a - 1][b - 1];

else {

dp[a][b] = Math.min(dp[a - 1][b]+1, Math.min(dp[a][b-1]+1, dp[a-1][b-1]+1));

}

}

}

result[i] = dp[lenA][lenB];

}

for(int i = 1;i <= n;i++)

System.out.println(result[i]);

}

}

标签:类库,java,Scanner,AGCTAAGGCCTT,蓝桥,复制,DNA,public

来源: https://blog.csdn.net/a1439775520/article/details/97677310


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部