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
  }
}