class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap<Character, Integer> window = new HashMap<>();
int left = 0;
int right = 0;
int ans = 0;
while(right < s.length()) {
// 将移入窗口的字符
char c = s.charAt(right);
// 右移窗口
right++;
// 更新窗口内数据
if (window.containsKey(c)) {
window.put(c, window.get(c) + 1);
} else {
window.put(c, 1);
}
// 收缩窗口
while (window.get(c) > 1) {
// 将移出窗口的字符
char b = s.charAt(left);
// 左移窗口
left++;
// 更新窗口内数据
window.put(b, window.get(b) - 1);
}
// 更新最大值
ans = Math.max(ans, right - left);
}
return ans;
}
}
leetcode-3-无重复字符的最长子串
最新推荐文章于 2024-06-15 09:23:13 发布