java---求字符串中最长的重复子串

来源:互联网 发布:软件日志 编辑:程序博客网 时间:2024/05/06 09:39
    /**     * 思路:"abdab" 拆分情况:1.ab abd abda abdab 2.bd bda bdab 3 da dab 4 ab 5 b     *      * @param str     * @return     */    public static String find(String str) {        String reg;// 最大字符串        String left;// 剩余字符串        int k = 0;// 计数器        int len = 0;// 最大字符串的长度        String result = null;// 最终结果        for (int i = 0; i < str.length(); i++) {            for (int j = 0; j < str.length() - i; j++) {                if (k < (j + 1)) {                    // 将字符串拆分成若干个子串                    reg = new String(str.substring(k, j + 1));                    left = new String(str.substring(j + 1));                    if (left.indexOf(reg) != -1 && reg.length() != 1) {                        if (reg.length() > len) {                            result = reg;                            len = reg.length();                        }                    }                }            }            k++;        }        return result;    }


可能存在没有测试到的情况,如果大家发现错误请指正,或者有其他好的方法也请赐教!

0 0