- 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
来源:力扣(LeetCode)
public static int lengthOfLongestSubstring(String s) {
if(s.length()==0)return 0;
int star=0;
int end=1;
int longest=0;
for(;end<s.length();end++) {
if(s.substring(star, end).contains(s.substring(end, end+1))) {
longest=end-star>longest?end-star:longest;
star+=s.substring(star, end).indexOf(s.substring(end, end+1))+1;
}
}
longest=end-star>longest?end-star:longest;
return longest;
}
或者(比上面稍微快一点)
public static int lengthOfLongestSubstring(String s) {
if(s.length()==0)return 0;
int star=0;
int end=1;
int longest=0;
for(;end<s.length();end++) {
while(!s.substring(star, end).contains(s.substring(end, end+1))) {
end++;
if(end==s.length())break;
}
longest=end-star>longest?end-star:longest;
if(end==s.length())break;
star+=s.substring(star, end).indexOf(s.substring(end, end+1))+1;
}
longest=end-star>longest?end-star:longest;
return longest;