1. 程式人生 > >Java實現-最長無重複字元的子串

Java實現-最長無重複字元的子串

public class Solution {
    /**
     * @param s: a string
     * @return: an integer 
     */
    public int lengthOfLongestSubstring(String s) {
        // write your code here
        if(s.length()==0){
			return 0;
		}
		int maxLength=1;
		List<Character> list=new ArrayList<Character>();
		list.add(s.charAt(0));
		for(int i=1;i<s.length();i++){
			if(list.contains(s.charAt(i))){
				int index=list.indexOf(s.charAt(i));
				list=list.subList(index+1, list.size());
				list.add(s.charAt(i));
//				System.out.println(list);
				maxLength=Math.max(maxLength, list.size());
			}else{
				list.add(s.charAt(i));
				maxLength=Math.max(maxLength, list.size());
			}
		}
		return maxLength;
    }
}