计算最大公共串

来源:互联网 发布:口才与演讲软件 编辑:程序博客网 时间:2024/05/01 22:51
package a.b.c.mytest;public class TestLcs {/** * 计算最大公共串 * @param str1 * @param str2 */public static String calLbs(String str1,String str2){String result[][] = new String[str1.length()][str2.length()];for(int i=0;i<str1.length();i++){for(int j=0;j<str2.length();j++){if(str1.charAt(i) == str2.charAt(j)){if(i==0 || j==0){result[i][j] = ""+str1.charAt(i);}else{result[i][j] = result[i-1][j-1]+str1.charAt(i);}}else{if(i==0 && j==0){result[i][j] = "";}    else if(j==0 && i > 0){result[i][j] = result[i-1][j];}else if(i==0 && j>0){result[i][j] = result[i][j-1];}else{int len1 = result[i][j-1].length();int len2 = result[i-1][j].length();if(len1 > len2){result[i][j] = result[i][j-1];}else{result[i][j] = result[i-1][j];}}}}}return result[str1.length()-1][str2.length()-1];}public static void main(String[] args) {          String str1 = "abcdefghijklmnopqrstuvwxyz";          String str2 = "bdegiklmopstvxzyqopnm";          System.out.println(TestLcs.calLbs(str1, str2));}}

0 0
原创粉丝点击