我正在寻找一种算法来搜索字符串中的子字符串。我知道有许多众所周知的算法,例如 Knuth-Morris-Pratt,我想大多数预实现的函数都使用其中的一种。但是,我记得很久以前的一次讲座,讲师说这种算法的有用性部分取决于字母表的大小。KMP 和 BMH 在普通的 26 个字母的字母表上显然可以正常工作。但是,如果我有一个小得多的字母表(例如,DNA:4 个字母或只是一个二进制),我该怎么办?
是否有特定的算法可以很好地处理非常小的字母?我用谷歌搜索并认为我应该很容易找到一些东西,因为通过 DNA 搜索是相当普遍的,但无济于事。有什么帮助吗?
请不要投票,这是我在这个子社区的第一个问题,我还不知道这里什么被认为太基本,什么是可以的。