找出字符串中最长不重复子串

public class AE {
    public static void main(String[] args) {
        //String s = "abacdecfgab";
        String s = "abacdbe";
        System.out.println(noDuplicate(s));
    }

    public static String noDuplicate(String str) {
        String sub = "";
        String result = "";
        for (int i = 0; i < str.length(); i++) {
            String c = "" + str.charAt(i);
            if (sub.contains(c)) {
                if (sub.length() > result.length()) {
                    result = sub;
                }
                sub = sub.substring(sub.indexOf(c)+1);
            }
            sub += c;
        }
        if (sub.length() > result.length()) {
            result = sub;
        }
        return result;
    }
}

 

posted @ 2015-10-19 11:11  AerialLadder  阅读(225)  评论(0编辑  收藏  举报