字符串中不重複字符的最長子串

public class LongestSubString {
    public static void main(String args[]){
    	String arg = "abacdefgafg";
    	System.out.println(longestSubStr(arg));
    }
    
    public static String longestSubStr(String str){
    	StringBuilder sb = new StringBuilder(str);
    	char[] cs = str.toCharArray();
    	String maxStr = "";
    	StringBuilder tmpStr = new StringBuilder();
    	for(int i = 0; i < cs.length; i++){
    		if(tmpStr.indexOf(String.valueOf(cs[i])) >= 0){
    			if(maxStr.length() < tmpStr.length()){
    				maxStr = tmpStr.toString();
    			} else {
    				tmpStr.delete(0, tmpStr.indexOf(String.valueOf(cs[i])));
    				tmpStr.append(cs[i]);
    			}
    		} else {
    			tmpStr.append(cs[i]);
    		}
    	}
    	if(tmpStr.length() > maxStr.length()){
    		maxStr = tmpStr.toString();
    	}
    		
    	return maxStr;
    }
}
相關文章
相關標籤/搜索