一、题目
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
二、解题思路
代码:
class Solution {
public int lengthOfLongestSubstring(String s) {
int len = s.length(),result = 0;
Map<Character,Integer> map = new HashMap();
char[] chars = s.toCharArray();
for (int start = 0,end = 0;end < len; end++) {
char c = chars[end];
if (map.containsKey(c)) {
start = Math.max(start, map.get(c));
}
result = Math.max(result, end - start + 1);
map.put(c, end + 1);
if((len - start) <= result) {
break;
}
}
return result;
}
}
图解1: 图解2: 图解3: 图解4: 图解5: 图解6: 图解7: 图解8: 图解9: 图解10: 图解11:
|