【Java例题】5.5 两个字符串中最长公共子串
5. 查找两个字符串中含有的最长字符数的公共子串。
package chapter5; import java.util.Scanner; public class demo5 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String a=sc.next(); String b=sc.next(); int max=0; int maxi=0; int arr[][]=new int[a.length()][b.length()]; for(int i=0;i<a.length();i++) { for(int j=0;j<b.length();j++) { char ac=a.charAt(i); char bc=b.charAt(j); if(ac==bc) { arr[i][j]=1; }else { arr[i][j]=0; } } } for(int i=1;i<a.length();i++) { for(int j=1;j<b.length();j++) { if(arr[i][j]!=0&&arr[i-1][j-1]!=0) { arr[i][j]=arr[i-1][j-1]+1; } } } for(int i=1;i<a.length();i++) { for(int j=1;j<b.length();j++) { if(arr[i][j]>max) { maxi=i; max=arr[i][j]; } } } for(int i=max-1;i>=0;i--) { System.out.print(a.charAt(maxi-i)); } sc.close(); } }