野猪小李刷leecode-03无重复字符串最长串
不学无术大龄小白刷leecode,这是leecode上的第三题无重复字符串最长串,自己的实现思路,欢迎各位前辈和后起之秀指导讨论!内联代码片
。(没有考虑到不是必须从第一个字符开始计算)
package leecode;
public class leecode03 {
public static void main(String[] args) {
String s="这个东西真的是个很好吃的东西";
int i = lengthOfLongestSubstring(s);
System.out.println(i);
}
public static int lengthOfLongestSubstring(String s) {
int maxlen=0;
String[] split = s.split("");
String[] newarray=new String[s.length()];
for (int i = 0; i < split.length; i++) {
if (!select(newarray,i,split[i])) {
newarray[i]=split[i];
}
//检查当前老数组的值(split[i])是否存在于新数组(newarray)
//得到newarray已经有值的部分的长度(i)用于遍历新数组
else if (select(newarray,i,split[i])){
return maxlen=i;
}
}
return maxlen=newarray.length;
}
//检查是否是之前已经加进数组的元素
public static boolean select(String[] newarray,int time,String target){
boolean repetition=false;
for (int i = 0; i < time; i++) {
if (target.equals(newarray[i])){
repetition=true;
}
}
return repetition;
}
}