思路
用HashMap实现了一个滑动窗口
就是记录了哈希表中已经有的值
然后遍历整个字符串
如果遇到已经有的值,那么就修改当前存储长度 : -1
思路相当于是贪心
其实不难,看代码吧
代码
class Solution {
public int lengthOfLongestSubstring(String s) {
int left=0;
int maxn_len=0;
HashMap<Character,Integer> cun = new HashMap<Character, Integer>();
int len = s.length();
for (int i = 0; i < len; i++) {
if(cun.containsKey(s.charAt(i))){
left = Math.max(left,cun.get(s.charAt(i))+1);
}
cun.put(s.charAt(i),i);
maxn_len = Math.max(maxn_len,i-left+1);
}
return maxn_len;
}
}