1. 程式人生 > >java-最大不重複字串長度

java-最大不重複字串長度

描述

給定一字串,求其中最大不重複子串長度。 exp: input:"",output:0 input:"aaa",output:1 input:"abcbabc",output:3

程式碼

public class Fun {
	public static int maxLenthNoRepeat(String str){
		if(str==null || str.isEmpty()){
			return 0;
		}
		Map<Character, Integer> map = new HashMap<Character, Integer>();
		int maxLength = 0;
		int current = 0;
		
		//迴圈字串,取出每個字元
		for(int index=0; index < str.length(); index++){
		if(map.containsKey(str.charAt(index))){
	            current = map.get(str.charAt(index)) + 1;
			}
			else{
	            if((index-current+1)>maxLength){  
	                maxLength=index-current+1;  
	            }
			}
			map.put(str.charAt(index), index);
		}
		
		return maxLength;
	}
}