输入一个字符串(只包含 a~z 的字符),求其最长不含重复字符的子字符串的长度。例如对于 arabcacfr,最长不含重复字符的子字符串为 acfr,长度为 4。
class Solution {
public int lengthOfLongestSubstring(String s) {
int res = 0, left = 0;
HashMap<Character, Integer> hash = new HashMap<>();
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(hash.containsKey(c)) {
left = Math.max(left, hash.get(c) + 1);
}
hash.put(c, i);
res = Math.max(res, i - left + 1);
}
return res;
}
}