一段字符串寻找最大的子字符串
思路:字符串:例子:iosiosios
*从第一个i开始一直加到第一个s:后遇到第二个i,此时,将ios作为一个子字符串保存下来,再寻找下一个不重复子字符串osi,以此循环,每次找到下一个子字符串前先跟前一个子字符串进行比较。如果当前子字符串长度大于前一个子字符串,则替换。循环往复,直到最后一个子字符串。
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
//输入字符串长度
int len = s.length();
//子字符串
String sb = "";
//最长子字符串
String smax = "";
for(int i=0;i<len;i++){
sb+=s.charAt(i);
if(sb.length()>smax.length()){
smax=sb;
}
for(int j=0;j<sb.length();j++){
if(i==len-1){
break;
}else{
//保证子字符串无重复
if(sb.charAt(j)==s.charAt(i+1)){
//指针移动
i = i-sb.length()+1;
sb = "";
}
}
}
}
System.out.println(smax);
}
}