题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
例子:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
我的解:
public static int lengthOfLongestSubstring(String s) {
Map<Character, Integer> map = new HashMap<>();
int count = 0;
int offset = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (map.containsKey(c) && offset<=map.get(c)) {
offset = map.get(c)+1;
}
map.put(c,i);
count = Math.max(count, i-offset+1);
}
return count;
}
思路:
每次移动之后 判断两个指针中间的大小