LCS算法运行通过一个包含10个字符串的文件
LCS algorithm running through a file with 10 strings
我有一个包含 10 个字符串的文件 - 每个字符串在 1 行 - 我需要 运行 LCS 并获取每个比较的 LCS 和 LCS 长度,例如,字符串 1 与字符串 2,字符串1 与字符串 3,字符串 1 与字符串 4 等等,直到它遍历每个字符串,然后递增到字符串 2 并重复此过程,直到它遍历所有字符串。
我已经成功地将每个字符串添加到 ArrayList 中以使其更容易,但现在我在尝试将所述字符串相互比较时遇到问题,我认为我应该使用嵌套的 for 循环,而我不这样做递增直到遍历整个列表,然后递增。
感谢任何帮助。这是我目前的代码。
public static void main(String[] args) {
List<String> Collection = new ArrayList<>();
String FirstLine = null;
int i;
File Temp1 = new File("CollectionSeqs/listSeqs-consensustest-errorhigh-l10.nsol_win.txt");
try{
InputStream fis = new FileInputStream(Temp1);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
for (String line = br.readLine(); line != null; line = br.readLine()) {
Collection.add(line);
System.out.println(line);
}
br.close();
}
catch(Exception e){
System.err.println("Error: Target File Cannot Be Read");
}
您使用 nested for loop.Here 的方法是正确的。
for(int i=0;i<Collection.size();++i)
{
String s1=Collection.get(i);
for(int j=i+1;j<Collection.size();++j)
{
String s2=Collection.get(j);
run the LCS for string s1 and s2
}
}
我有一个包含 10 个字符串的文件 - 每个字符串在 1 行 - 我需要 运行 LCS 并获取每个比较的 LCS 和 LCS 长度,例如,字符串 1 与字符串 2,字符串1 与字符串 3,字符串 1 与字符串 4 等等,直到它遍历每个字符串,然后递增到字符串 2 并重复此过程,直到它遍历所有字符串。
我已经成功地将每个字符串添加到 ArrayList 中以使其更容易,但现在我在尝试将所述字符串相互比较时遇到问题,我认为我应该使用嵌套的 for 循环,而我不这样做递增直到遍历整个列表,然后递增。
感谢任何帮助。这是我目前的代码。
public static void main(String[] args) {
List<String> Collection = new ArrayList<>();
String FirstLine = null;
int i;
File Temp1 = new File("CollectionSeqs/listSeqs-consensustest-errorhigh-l10.nsol_win.txt");
try{
InputStream fis = new FileInputStream(Temp1);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
for (String line = br.readLine(); line != null; line = br.readLine()) {
Collection.add(line);
System.out.println(line);
}
br.close();
}
catch(Exception e){
System.err.println("Error: Target File Cannot Be Read");
}
您使用 nested for loop.Here 的方法是正确的。
for(int i=0;i<Collection.size();++i)
{
String s1=Collection.get(i);
for(int j=i+1;j<Collection.size();++j)
{
String s2=Collection.get(j);
run the LCS for string s1 and s2
}
}