思路:
1、先把字符串s转换成字符数组
2、从字符串的第一个字符开始,依次把字符装到hashset里面(这里利用了hashset的特性,集合中不能有重复的元素),直到违反重复性规则为止,break时把hashset的size记录下来。重复n次,比较出最大的长度。
3、考虑字符串为空串的情况,如果s="",返回0
遇到的问题:
1、思路没有对
2、没有考虑空串的情况
代码:
class Solution {
public int lengthOfLongestSubstring(String s) {
char[] chararray=s.toCharArray();
char current,comparechar;
int length=0;
for(int i=0;i<chararray.length;i++) {
HashSet<Character> se=new HashSet<>();
current=chararray[i];
se.add(current);
for(int j=i+1;j<chararray.length;j++) {
comparechar=chararray[j];
if(!se.contains(comparechar)) {
se.add(comparechar);
}else {
break;
}
}
if(se.size()>=length) {
length=se.size();
}
se.clear();
}
if(length==0)length=chararray.length;
return length;
}
}