题目
3. Longest Substring Without Repeating Characters
Medium
4543
225
Favorite
Share
Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: “abcabcbb”
Output: 3
Explanation: The answer is “abc”, with the length of 3.
Example 2:
Input: “bbbbb”
Output: 1
Explanation: The answer is “b”, with the length of 1.
(找出字符串不同的最大长度)
答案:
public int lengthOfLongestSubstring(String s) {
int length = s.length();
if(length == 0)
return length;
int[] table = new int[256];
for(int i = 0 ; i < 256 ; i++)
{
table[i] = -1;
}
int start = 0;
int max = 1;
int end=1 ;
table[s.charAt(0)] = 0;
while(end < length)
{
if(table[s.charAt(end)] >= start)
start = table[s.charAt(end)]+1;
max = max > end - start+1 ?max:end - start+1 ;
table[s.charAt(end)] = end;
end++;
}
return max;
}
tips:hash表