자바 최대 공통 문자열 구하 기

인터넷 에서 두 문자열 을 구 하 는 가장 큰 공공 문자열 의 예 를 보 았 습 니 다.알고리즘 을 사용 한 사상 이 많 기 때문에 자신 이 잘 모 르 기 때문에 스스로 하 나 를 써 보 았 습 니 다.결 과 는 놀 라 웠 습 니 다.가장 간단 하고 효율 적 인 것 은 아니 지만 코드 가 비교적 적은 것 같 습 니 다.하하~자 랑스 럽 습 니 다.
 
public class CompareStrM
{
    public static void main(String[] args)
    {
        String str1 = "  ,          :“     ,     ”。。。。";
        String str2 = "   “     ,     ”     ";
        
        String minStr = str1.length() >= str2.length() ? str2 : str1;
        String maxStr = str1.length() <= str2.length() ? str2 : str1;
        
        ArrayList<String> lList = new ArrayList<String>();
        int maxLength = 1;
        
        for (int i = 0; i < minStr.length() - maxLength * 2; i++) {
            String subStr = minStr.substring(i, i + maxLength);
            
            if (maxStr.contains(subStr)) {
                String str = null;
                int len = maxLength;
                do {
                    len++;
                    str = minStr.substring(i, i + len);
                } while (maxStr.contains(str));
                
                if (len-- >= maxLength) {
                    lList.add(str.substring(0, str.length() - 1));
                    maxLength = len;
                }
            }
        }
        
        System.out.println("MaxLength: " + maxLength + "
"); for (String s : lList) { if (s.length() == maxLength) { System.out.print(" : " + s); } } } }

 
이후 에 도 찾 은 자 료 를 계속 정리 하여 아래 에 붙 일 것 이다.

좋은 웹페이지 즐겨찾기