问题原始链接 https://leetcode.com/problems/longest-substring-without-repeating-characters
给定一个字符串,返回没有重复字符的最长子串的长度。
例子:
给定"abcabcbb",没有重复字符的最长子串为"abc",长度为3。
给定"bbbbb",没有重复字符的最长子串为"b",长度为1。
给定"pwwkew",没有重复字符的最长子串为"wke",长度为3。
public class Solution {
public int lengthOfLongestSubstring(String s) {
if (s == null || s.length() == 0) {
return 0;
}
int start = 0;
int end = 1;
int maxStart = 0;
int maxEnd = 1;
for (int i = 1; i < s.length(); i++) {
int dupIndex = s.substring(start, end).indexOf(s.charAt(i) + "");
if (dupIndex >= 0) {
if (end - start > maxEnd - maxStart) {
maxStart = start;
maxEnd = end;
}
start += dupIndex + 1;
end = i + 1;
} else {
end = i + 1;
}
}
if (end - start > maxEnd - maxStart) {
maxStart = start;
maxEnd = end;
}
return maxEnd - maxStart;
}
}