LCS算法通过一个包含10个字符串的文件运行

时间:2016-04-12 04:36:45

标签: java algorithm lcs

我有一个包含10个字符串的文件 - 每行1行 - 我需要运行LCS并获得每个比较的LCS和LCS长度,例如,String 1 with String 2,String 1 with String 3,String 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");
        }

1 个答案:

答案 0 :(得分:0)

你正确使用嵌套for循环。这就是你如何做到这一点。

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