3
我看到关于该主题的问题很多,但请随身携带。在给定一组常数因子的情况下,在字符串中搜索字符串的最快方法
我有一个很长的字符串,其中我需要确定是否存在短字符串的发生。这听起来很简单,它就是利用strpos
我可以执行
strpos($longstr, $shortstr);
这将完成这项工作,但也有一些事实,我知道肯定:
- 短串总会开始一个新行
- 短串永远是10个字符长(多字节)
- 短期字符串将始终以字符“чь”
- 启动短期字符串将始终与第10字符
- 短串后一个新行结束只能出现一次,其发生是毫无意义的,忽略
铭记上述条件,它是没有意义的搜索对于新行中除0以外任何位置的字符串,如果我不经过整个长字符串,怎么才能知道新行的位置。
与strpos
相比,在完成工作时有什么可以改进的方面,性能方面?
一致认为,使用'strpos'应该是最快的方法 - 不需要过分复杂化已经存在一个非常简单的解决方案。 – CBroe 2015-03-31 14:08:31
我会一直测试这些建议。如何做好整个工作实际上比想办法做更少的工作要快得多。 – 2015-03-31 14:10:30
如果第n次出现有趣,那将会更加复杂,但是对于第一个'strpos'感兴趣似乎是最好的解决方案:最快和最有效的内存。 – yergo 2015-04-01 08:05:21