java版求字符串的最大公共子串

来源:互联网 发布:王俊煜 知乎 编辑:程序博客网 时间:2024/05/16 04:23
package com.qianqiang.sort;public class CommonSubstring {public static void main(String[] args) {       //待求char[] a={'a','b','c','d','e'};char[] b={'d','e','c','d','e'};     //   定义存储矩阵int[][] table=new int[a.length][b.length];commomtSubstring(a,b,table);}private static void commomtSubstring(char[] a, char[] b, int[][] table) {// TODO Auto-generated method stub//      最大字串a的开始位置int start1=-1;//最大字串2的开始位置int start2=-1;//      最大子串的长度int longest=0;for(int j=0;j<b.length;j++){table[0][j]=(a[0]==b[j]?1:0);}for(int i=1;i<a.length;i++){table[i][0]=(a[i]==b[0]?1:0);for(int j=1;j<b.length;j++){if(a[i]==b[j]){table[i][j]=table[i-1][j-1]+1;}}}for(int i=0;i<a.length;i++){for(int j=0;j<b.length;j++){if(longest<table[i][j]){longest=table[i][j];start1=i-longest+1;start2=j-longest+1;}}}System.out.print("a从"+start1+",b从"+start2);}}

0 0
原创粉丝点击