题目:给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
解法:利用hash表作字符重复判断,替换字符,重新计数取最大值
class Solution {
public int lengthOfLongestSubstring(String s) {
int max = 0;
int start = 0;
HashMap<Character, Integer> map = new HashMap<>();
for(int i=0;i<s.length();i++) {
char c = s.charAt(i);
if(map.containsKey(c)) start = Math.max(start, map.get(c) + 1);
max = Math.max(max, i - start + 1);
map.put(c, i);
}
return max;
}
}