题目
给定一个字符串 s ,请你找出其中不含有重复字符的 最长
子串
的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
解
java
class Solution {
public int lengthOfLongestSubstring(String s) {
int n = s.length();
int left = 0;
int right = 0;
int maxLen = 0;
Map<Character, Integer> map = new HashMap<Character, Integer>();
while (left <= right && right < n) {
Character chRight = s.charAt(right);
if (map.get(chRight) == null) {
map.put(chRight, 1);
right++;
} else {
Character chLeft = s.charAt(left++);
map.remove(chLeft);
}
maxLen = Math.max(maxLen, right - left);
}
return maxLen;
}
}