0

我想获取一个长字符串(数十万个字符)并将其与一组关键字进行比较,以确定数组中的哪个关键字比其他关键字被提及的次数更多。

这似乎很容易,但我有点担心strstr这项任务的表现不佳。

我应该以不同的方式来做吗?

谢谢,

4

2 回答 2

2

我认为您可以通过一次扫描以不同的方式进行操作,如果您以正确的方式进行操作,它可以为您带来显着的性能提升。

创建一个关联数组,其中键是关键字,值是出现次数。

逐字阅读字符串,我的意思是取一个单词并将其放入变量中。然后,将其与所有关键字进行比较(有几种方法可以做到,您可以使用 查询关联数组isset)。当找到一个关键字时,增加它的计数器。

我希望 PHP 用一些类似 hashmap 的东西来实现关联数组...

于 2011-04-26T22:36:57.197 回答
0

以线性方式解析单词。对于您遇到的每个单词,在您正在寻找的单词的关联数组中增加它的计数(当然,跳过那些您不感兴趣的单词)。这将比 strstr 快得多。

于 2011-04-26T22:36:35.533 回答