Algorithm 在二维阵列中查找特定阵列的最佳方法

Algorithm 在二维阵列中查找特定阵列的最佳方法,algorithm,puzzle,Algorithm,Puzzle,我有一个随机字符的2D数组。 我想匹配这些字符的特定模式:例如:ABA、BACKA、上/下/左/右。 找到这种模式的最佳算法是什么 如果这就像一个单词搜索,你只能往一个方向走(一旦你开始向左走,你只能继续往左走),答案应该很简单,只需继续测试每个可能的起始位置,然后朝每个方向走。在最坏的情况下,对于n乘n,这将是O(mn^2)。如果可以向上/向左/等任意次数,最明显的方法是将矩阵视为一个图,并进行BFS或DFS。根据单词的大小和字母的分布情况,这可能成本过高 如果您对单个矩阵有多个查询,则可以通

我有一个随机字符的2D数组。 我想匹配这些字符的特定模式:例如:ABA、BACKA、上/下/左/右。
找到这种模式的最佳算法是什么

如果这就像一个单词搜索,你只能往一个方向走(一旦你开始向左走,你只能继续往左走),答案应该很简单,只需继续测试每个可能的起始位置,然后朝每个方向走。在最坏的情况下,对于n乘n,这将是O(mn^2)。如果可以向上/向左/等任意次数,最明显的方法是将矩阵视为一个图,并进行BFS或DFS。根据单词的大小和字母的分布情况,这可能成本过高


如果您对单个矩阵有多个查询,则可以通过将生成的单词缓存在类似trie的结构中并引用原始单元格来加快这两种方法的速度。

这是面试问题吗?这不是面试问题&这不是家庭作业。谢谢。我需要匹配的单词数量也非常多。对于较大的矩阵和大量的单词,搜索速度较慢,缓存内存需求也显著增加。有什么优化吗?