LeetCode OJ 3.求字符串中最长字串问题

题目描述:

给定一个字符串,求出这个字符串中最大长度的字段,返回长度


	public int lengthOfSubString(String s){
		char[] arr = s.toCharArray();//将String转化为Char型数组
		int start = 0, cur = 0, max = 0;
		int[] map = new int[125];//为每个字母定义一个位置,记录每一个字符的信息
		for(int i=0;i<arr.length;i++){
			char c = arr[i];//
			if(map[c]==0){
				map[c] = i+1;//标记
				cur ++;//此时的长度增1
				if(cur > max){
					max = cur;//检查长度是否超过最大值
				}
			}else{
				end = map[i] -1;//如果出现重复的字符,则提取上个出现该字符的位置
				for(int j=start;j<end;j++ ){//将这个区间上的所有位置信息初始化,也就是置0
					map[char[i]] = 0;
				}
				start = end + 1;
				map[arr[i]] = i+1;
				cur = i-end;
			}
		} 
		return max;
	}


你可能感兴趣的:(LeetCode)