题目链接:点击打开链接
类型:
解法:记录每一子串起始位置和长度,并与当前最大长度进行比较
public class Solution {
public int lengthOfLongestSubstring(String s) {
if (s.length() == 0) return 0;
if (s.length() == 1) return 1;
int max_len = 1;
HashMap<Character, Integer> map = new HashMap<>();
int begin = 0;
int len = 1;
for (int i=0 ; i<s.length() ; ++i)
{
if (map.containsKey(s.charAt(i)))
{
begin = Math.max(begin, map.get(s.charAt(i))+1);
}
map.put(s.charAt(i), i);
len = i - begin + 1;
max_len = (max_len > len) ? max_len : len;
}
return max_len;
}
}