在本文中,我们将讨论一个程序,该程序执行用于模式搜索的有限自动机算法。我们提供了一个文本[0...n-1] 和一个模式[0...m-1]。我们必须找到模式[] 在文本[] 中的所有出现。为此,我们将预处理文本[] 并构建一个二维数组来表示它。之后,我们只需要遍历文本[] 的元素和自动机的不同状态即可。示例实时演示#include #include #define total_chars 256 int calc_nextstate(char *pat, int M, int state, int x) { if (state < M && x == pat[state]) ... 阅读更多
在本文中,我们将讨论一个程序,该程序查找两个给定未排序数组的并集和交集。让我们用“A”和“B”表示这两个数组。然后这两个数组的并集用 A ∪ B 表示,它基本上是这两个给定数组中所有元素的数组;前提是每个元素只重复一次。为了找到它,我们将创建一个单独的数组,并将第一个数组中的所有元素复制下来。然后,我们将遍历第二个数组的元素,并检查它是否已存在于并集中 ... 阅读更多
在本文中,我们将讨论一个程序,该程序在比较两个不同的给定字符串时查找不常见的字符。众所周知,字符串不过是字符数组。因此,为了进行比较,我们将遍历一个字符串的字符,并同时检查该元素是否存在于另一个字符串中。如果我们让第一个字符串为 A,第二个字符串为 B。那么它将给我们 A - B。类似地,我们可以计算 B - A。结合这两个结果,我们将得到( A - B ) ∪ ( B - A )即 ... 阅读更多