请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。
示例 1:
"abc",所以其
示例 2:
"b"
示例 3:
"wke"
"pwke"
提示:
s.length <= 40000
使用滑动窗口,哈希表来记录:
class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap<Character, Integer> map = new HashMap<>();
int max = 0;
for (int i = 0,start = 0; i < s.length(); i++) {
char c = s.charAt(i);
//如果重复
if (map.containsKey(c)) {
start = Math.max(map.get(c),start);
}
map.put(c,i+1);
max = Math.max(max,i-start+1);
}
return max ;
}
}
标签:map,48,Offer,int,max,示例,start,字符串
From: https://blog.51cto.com/u_16040716/7324279