leetcode练习(1)

题目
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表

你可能感兴趣的:(leetcode练习(1))