给定一个字符串,找出其中不含有重复字符的最长子串长度。
思路:这是一个滑动窗口的题目。设置两个两个指针来进行操作。一个代表左边界,一个代表右边界。
左边界每次移动一个位置,找到这个左边界所包含的最长子串。然后在继续左边界。`
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s == null || s.length() == 0) return 0;
char[] ch = s.toCharArray();
int len = -1;
int count = 0;
Set<Character> set = new HashSet<>();
for(int i = 0; i < ch.length; i++){
if(i > 0) set.remove(ch[i -1]);
while(len + 1 < ch.length && !set.contains(ch[len + 1])){
set.add(ch[len + 1]);
len++;
}
count = Math.max(count, len - i + 1);
}
return count;
}
}