题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
思路:以第一个字串为无重复子串,持续引入后续的新字符。当引入后续新的字符后,对无重复子串的影响有两种情况:
1、无重复子串中包含新字符:无重复条件被打破,则新的无重复子串起始位置为新字符在原无重复子串位置的后一位;
2、无重复子串中不包含新字符:无重复子串起始位置不变,长度加一。
class Solution {
public int lengthOfLongestSubstring(String s) {
int len = s.length();
if (len == 0){
return 0;
}
int start = 0;
int res = 1;
for(int end = 1;end < s.length(); end++){
String sub = s.substring(start, end);
String temp = s.substring(end, end+1);
int index = sub.indexOf(temp);
if(index>=0){
start += (index+1);
} else{
res = Math.max(res, end-start+1);
}
}
return res;
}
}