假设我有一个很长的字符串,比如一个文件路径,我想在其中搜索一些东西。例如,类似$ find
命令的东西。这似乎是一个基本的实现方式:
if(strstr(sent, word) != NULL) {
return 1;
}
这样做和像Boyer Moore这样的事情会有什么性能差异吗?还是strstr
已经做了同样有效的事情?
基本上,我有大约十亿个非常长的字符串,我希望基于最有效的子字符串实现对它们进行快速(ish)查找(没有任何索引)。我应该使用什么?
更新:举一个更具体的例子,假设我有十亿个文件路径要搜索:
/archive/1002/myfile.txt
/archive/1002/newer.mov
/user/tom/local_2014version1.mov
从这里我会搜索一个或多个字符串。示例示例为:
"1002" // would return the first two fileds
"mov version tom" // would return the first row