//匹配最短字符串(升级没bug版)
import java.util.Scanner;
public class str2{
public static void main(String[] args) {
System.out.println("请输入第一个字符串");
Scanner p = new Scanner(System.in);
String a=p.nextLine();
System.out.println("请输入第二个字符串");
String b=p.nextLine();
long startTime = System.nanoTime(); //获取开始时间
int i,j,sum=100; //sum设置最大匹配长度为100(可以根据实际情况进行更改)
int s=0; //记录匹配位置(j),下一次循环从记录位置的第二位开始
int s1=0; //记录i==0时,匹配到的j+1(为了i从匹配到的下一个位置开始匹配)
while(s1a.length()-1){
j=a.length()-1;
}
//System.out.println(b.charAt(i));
//System.out.println(a.charAt(j));
if(i==0&b.charAt(i)==a.charAt(j)){//记录第一个
s1=s;
jl=j;
}
if(b.charAt(i)!=a.charAt(j)){ //匹配不上,结束循环,返回没有
jx=-1;
i=b.length();
}
}
if(jl==-1||jx==-1){
System.out.println("没有该字符串2");
break;
}else {
//System.out.println("jl:"+jl);
//System.out.println("jx-jl+1:"+(jx-jl+1));
if(sum>jx-jl+1){
sum=jx-jl+1;
}
}
}
if (sum==100){
System.out.println("没有该字符串3");
}else{
System.out.println("最短字符串为:"+sum);
}
long endTime = System.nanoTime(); //获取结束时间
System.out.println("程序运行时间:" + (endTime - startTime) + "ns"); //输出程序运行时间
}
}
运行结果:



