String 高速字符串匹配算法
我基本上是在测试一些高速字符串匹配算法,我遇到了一些String 高速字符串匹配算法,string,algorithm,String,Algorithm,我基本上是在测试一些高速字符串匹配算法,我遇到了一些 向后非确定性DAWG(有向无环字图) Gonzalo Navarro和Mathieu Raffinot的匹配算法。见“A” 后缀自动机的位并行方法:快速扩展字符串 “匹配” Horspool改进版的Boyer-Moore弦 搜索算法。请参阅“字符串中的实用快速搜索” 移位或不匹配算法 还有其他更好的高速字符串匹配算法吗 编辑:类似的行中还有另一行,它也有很好的参考资料您也可以试试 :在某些方面甚至比KMP更整洁 :基于Trie,最初用于f
- :在某些方面甚至比KMP更整洁
- :基于Trie,最初用于fgrep
- :基于哈希的
import java.util.Scanner;
import java.util.Scanner;
public class StringMatch {
static int temp,i=0,j=0; static boolean flag=true,matcher=false;
static String str=null,mstr=null;static char astr[],amstr[];
static void getter(){
Scanner sc = new Scanner(System.in);
str = sc.nextLine();
//String str="today is Monday";
astr=str.toCharArray();
mstr = sc.nextLine();
//String mstr="is";
amstr=mstr.toCharArray();
}
static void stringMatch(){
while(i<astr.length){
if(astr[i]==amstr[j]){
while((j!=amstr.length)&&flag){temp=i;
if(astr[i]!=amstr[j]) {flag=false;matcher=false;}
else{matcher=true;}
i++;j++;
//System.out.println(i+"\t"+j);
}if(matcher==true)break;i=temp;}i++;j=0;flag=true;
}
if(matcher==true) {System.out.println("true");}
else {System.out.println("false");}
}
public static void main(String[] args) {
StringMatch.getter();
StringMatch.stringMatch();
}
}
公共类字符串匹配{
静态int-temp,i=0,j=0;静态布尔标志=true,匹配器=false;
静态字符串str=null,mstr=null;静态字符astr[],amstr[];
静态空隙吸气剂(){
扫描仪sc=新的扫描仪(System.in);
str=sc.nextLine();
//String str=“今天是星期一”;
astr=str.toCharArray();
mstr=sc.nextLine();
//字符串mstr=“is”;
amstr=mstr.toCharArray();
}
静态void stringMatch(){
while(我可以在这里看一看:非常好的收藏!非常感谢Nabb!欢迎。你可以通过解释这个算法的一些内容来做出更好的回答,也许它与问题中命名的算法相比如何?