public class MatchStr {
public static String a="abcdfishftfuia345345345";
public static String b="foshdguuuutfu345345345abcd";
public static void main(String [] arg){
char[] c1= a.toCharArray();
char[] c2 = b.toCharArray();
int [] [] all=new int[c1.length][c2.length];
for(int i=0; i<c1.length; i++){
for(int j=0; j<c2.length; j++){
all[i][j]=0;
}
}
List<Character> list=new ArrayList<>();
for(int i=0; i<c1.length; i++){
for(int j=0; j<c2.length; j++){
if(c1[i]==c2[j]){
int a1=i-1;
if(a1<0){
a1=0;
}
int b1=j-1;
if(b1<0){
b1=0;
}
all[i][j]=all[a1][b1]+1;
}else{
all[i][j]=0;
}
}
}
int maxx=0;
int maxy=0;
int max=0;
for(int i=0; i<c1.length; i++){
for(int j=0; j<c2.length; j++){
if(all[i][j]>max){
maxx=i;
maxy=j;
max=all[i][j];
}
}
}
System.out.println(max+"->"+maxx+"->"+maxy);
for(int i=0; i<max; i++){
list.add(c1[maxx-i]);
}
Collections.reverse(list);
for(int i=0; i<list.size(); i++){
System.out.print(list.get(i));
}
}
}
©著作权归作者所有:来自51CTO博客作者大海之中的原创作品,如需转载,请注明出处,否则将追究法律责任
共同学习,写下你的评论
评论加载中...
作者其他优质文章