1. 程式人生 > >【Java例題】5.5 兩個字符串中最長公共子串

【Java例題】5.5 兩個字符串中最長公共子串

length nbsp char static 字符 chapter max system.in 子串


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(); } }

【Java例題】5.5 兩個字符串中最長公共子串