【解题思路】
对每一个位置的字符,向前查询不重复的最大长度,并记录。最后比较得到全局最大不重复字符长度。
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.equals("")) return 0;
int len = s.length();
int[] maxLen = new int[len];
maxLen[0] = 1;
int ans = 0;
for(int i = 1; i < len; i++)
{
maxLen[i] = findLength(s, i-1, s.charAt(i), maxLen);
}
for(int i = 0; i < len; i++)
{
if(maxLen[i] > ans)
{
ans = maxLen[i];
}
}
return ans;
}
public int findLength(String s, int point, char c, int[] maxLen)
{
int reVal = 1;
int thisLen = maxLen[point];
for(int i = point; thisLen > 0; i--)
{
if(s.charAt(i) == c)
{
break;
}
else
{
reVal++;
thisLen--;
}
}
return reVal;
}
}