题目
解题思路
代码:
class Solution {
public int lengthOfLongestSubstring(String s) {
int a[]=new int[s.length()];
Map<Character, Integer> map=new HashMap<Character, Integer>();
int distandce=0;
int maxnum=0;
if(s.length()==0)
{
return 0;
}
for(int i=0;i<s.length();i++)
{
if(i==0)
{
a[0]=1;
map.put(s.charAt(0), 0);
}
else if (!map.containsKey(s.charAt(i)))
a[i]=a[i-1]+1;
else
{
distandce=i-map.get(s.charAt(i));
if(distandce<=a[i-1])
a[i]=distandce;
else {
a[i]=a[i-1]+1;
}
}
map.put(s.charAt(i), i);
maxnum=Math.max(maxnum, a[i]);
}
return maxnum;
}
}