给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。
示例 1:
题解输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
我的思路是将子串提取出来,遇到重复的,则删除字串中重复字符前面(含重复字符)的所有字符。但最终速度很慢。猜测可能是String类型的一些操作就是循环操作。
好方法:滑动窗口。一开始也想到了滑动窗口,但后面重复字符的问题没细想又换回上面自己的思路。
还是得多思考!!!前期不要在意速度!!!以及Java的集合类很多都不熟悉要现查!
Codeclass Solution {
public int lengthOfLongestSubstring(String s) {
String sub= new String();
int count=0;
for(int i=0;i
if(sub.indexOf(s.charAt(i))==-1){
sub+=s.charAt(i);
}
else{
if(sub.length()>count)
count = sub.length();
sub = sub.substring(sub.indexOf(s.charAt(i))+1);
sub+=s.charAt(i);
}
}
if(sub.length()>count)
count = sub.length();
return count;
}
}



