【发布时间】:2013-12-14 16:01:31
【问题描述】:
我的主要目的是创造类似的东西
我目前从我的 txt 文件中读取 2 个 dna 序列并创建 2 个具有 2 个序列(M 和 N)的字符串,因此我必须创建一个 M+1 和 N+1 矩阵才能执行我的动态规划算法。
现在我的问题是这个!
如何创建这个二维数组?我的第一个维度应该用我的第一个字符串(part1)的字符创建,第二个维度应该用我的第二个字符串(part2)创建
我怎样才能做到这一点,然后像图片中一样打印出来。
谢谢 http://i.stack.imgur.com/ViHc9.png
这是我的代码
import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class EditDistance {
public static void main(String[] args) {
int N = 0;
int M = 0;
// char [][] opt = new char [N+1][M+1];
java.io.File file = new java.io.File("gene57.txt");
try {
Scanner input = new Scanner(file);
while (input.hasNext()) {
String num = input.nextLine();
String[] parts = num.split(" ");
String part1 = parts[0];
N = part1.length();
String part2 = parts[1];
M = part2.length();
System.out.println(part1);
System.out.println("Number of nucleobase of Sequence 1 is=" + N);
System.out.println(part2);
System.out.println("Number of nucleobase of Sequence 2 is=" + M);
}
}
catch (FileNotFoundException e) {
System.err.format("File does not exist\n");
}
// x= n+1 , y=m+
}
}
【问题讨论】:
-
您是否明确需要二维数组,或者是否足以打印图片中给出的矩阵?
-
好吧,我将使用动态编程和回溯方法来获得“最佳”对齐,所以我认为我需要一个二维数组,这就像我的最终输出 % java EditDistance
-
您不能使用
ArrayList<ArrayList<Character>>来完成这项工作吗? -
@splrs 我认为对于动态编程,数组效果最好,因为您可以轻松访问例如上面/后面两行的东西。
-
@user2560965 你需要每一行每一列的额外字段吗?
标签: java arrays dynamic-programming multidimensional-array