public int lengthOfLongestSubstring(String s) {
HashMap<Character, Integer> map = new HashMap<>();
final char[] chars = s.toCharArray();
int max = 0;
int left = 0;
for (int i = 0; i < chars.length; i++) {
char aChar = chars[i];
if (map.containsKey(s.charAt(i))) {
left = Math.max(left, map.get(aChar) + 1);
}
map.put(aChar, i);
max = Math.max(max, i - left + 1);
}
return max;
}
2.解题思路
遍历字符串数组
定位基准点 left
通过 hash 表更新 left 的值
不断更新 max 的最大值
3.关键点
toCharArray 函数不要写错了
containsKey 函数不要写错了
更新 left 值时注意考虑 abba 的情况
值为 key,index 为 value
字符数量注意+1
三.自我分析
1.解题思路
apl复制代码
if 有思路
开写
else
去看相关标签,确定具体解题方法
if 有思路
开写
else
看提示信息
if 有思路
开写
else
看答案