C++ 检查字符串是否包含其他字符串算法?
如果我有一个字符串A,我有许多其他字符串,我想看看这些其他字符串中是否有一个在A中 什么算法可以在尽可能少的迭代中做到这一点 例: “你好,我叫鲍勃。” 我想看看是否包含“name is b”,它从[11]开始 我不想使用正则表达式库C++ 检查字符串是否包含其他字符串算法?,c++,string,algorithm,parsing,C++,String,Algorithm,Parsing,如果我有一个字符串A,我有许多其他字符串,我想看看这些其他字符串中是否有一个在A中 什么算法可以在尽可能少的迭代中做到这一点 例: “你好,我叫鲍勃。” 我想看看是否包含“name is b”,它从[11]开始 我不想使用正则表达式库 感谢最有效的算法是,给定长度为n的字符串和总长度为m的字符串集,可以在时间O(n+m+z)内找到所有匹配项,其中z是报告的匹配项总数。它是基于有限自动机的,是有限自动机的推广 该算法的一个很酷的方面是,如果您有一组固定的关键字和一组要搜索的文本字符串,那么可以通过
感谢最有效的算法是,给定长度为n的字符串和总长度为m的字符串集,可以在时间O(n+m+z)内找到所有匹配项,其中z是报告的匹配项总数。它是基于有限自动机的,是有限自动机的推广 该算法的一个很酷的方面是,如果您有一组固定的关键字和一组要搜索的文本字符串,那么可以通过进行O(m)预处理来加速算法,以构建匹配器。然后可以在时间O(n+z)中找到长度为n的字符串中的所有匹配项
另一方面,如果您有一个固定的字符串,然后希望匹配一组不同的模式字符串,那么考虑一下,它给出相同的运行时保证,但如果文本是固定的,则更快。 希望这有帮助