暴力破解法(Brute-Force)
主字符串的长度为n,子串的长度为m。将主字符串与子字符串进行逐一比较,若主串与子串相等,加一。
若匹配最后不想等,则从主串下一索引开始重新匹配。
最多需要比较(n-m)*m次。
public class BruteForce {
public static int BF(String S,String P) {
int index=-1;
int N=S.length();
int M=P.length();
for(int i=0;i<=N-M;i++) {//注意边界条件,这里需要比较到最后一个节点i<=N-M
boolean match=true;
for(int j=0;j<M;j++) {
if(S.charAt(i+j)!=P.charAt(j)) {
match=false;
break;
}
}
if(match) {
index=i;
break;//一旦匹配到第一个就退出循环
}
}
return index;
}
public static void main(String[] args) {
String S= new String("goodgoogle");
String P=new String("google");
System.out.println(BF(S,P));
}
}