在一个字符串中找出以同样的顺序连续出现在另一个字符串中的最长连续字符串的长度

package InterviewTitle;

import java.util.ArrayList;

public class 搜索最长字符串 {

    public static void main(String[] args) {
        String query = "acbac";
        String text = "acaccbabb";
        System.out.println(getLongString(query, text));
    }

    public static String getLongString(String query, String text) {
        // 1、首先获得query的所有子字符串
        int i, j,maxLength=0, maxLengthNum = 0;
        ArrayList<String> list = new ArrayList<String>();
        for (i = 0; i < query.length(); i++) {
            for (j = 1; j < query.length(); j++) {
                if (i < j) {
                    list.add(query.substring(i, j));
                }
            }
        }
        //2、在源字符串中查找目的字符串的集合
        for (int k = 0; k < list.size(); k++) {
            if (text.contains(list.get(k))) {
                if (list.get(k).length() > maxLength) {
                    maxLength=list.get(k).length();
                    maxLengthNum = k;
                    
                }
            }
        }
        return list.get(maxLengthNum);
    }
}

 

posted @ 2015-08-22 17:27  大数据从业者FelixZh  阅读(359)  评论(0编辑  收藏  举报