You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
640 B
28 lines
640 B
package 第01期.mca_08_dp;
|
|
|
|
// 本题测试链接 : https://leetcode.com/problems/longest-substring-without-repeating-characters/
|
|
public class Code03_LongestSubstringWithoutRepeatingCharacters {
|
|
|
|
public static int lengthOfLongestSubstring(String s) {
|
|
if (s == null || s.equals("")) {
|
|
return 0;
|
|
}
|
|
char[] str = s.toCharArray();
|
|
int[] map = new int[256];
|
|
for (int i = 0; i < 256; i++) {
|
|
map[i] = -1;
|
|
}
|
|
map[str[0]] = 0;
|
|
int N = str.length;
|
|
int ans = 1;
|
|
int pre = 1;
|
|
for (int i = 1; i < N; i++) {
|
|
pre = Math.min(i - map[str[i]], pre + 1);
|
|
ans = Math.max(ans, pre);
|
|
map[str[i]] = i;
|
|
}
|
|
return ans;
|
|
}
|
|
|
|
}
|