arrays - 在多维数组中找到 4 个连续相等字符的最佳方法是什么?
问题描述
挑战是用可能的最佳算法在水平、垂直或对角线方向上找到 4 个连续相等的字符。
例如,如果我们有这个矩阵:
[
['L','T','G','C', 'T','A' ],
['X','A','G', 'T', 'G', 'A' ],
['T','R', 'T', 'K','G', 'A' ],
['A', 'T', 'A','M','G', 'A' ],
[ 'C','C','C','C' ,'T','G'],
['V','C','D','C','T','W']
]
该算法应该找到AAAA
(垂直),CCCC
(水平)和TTTT
(倒对角线)。
你会怎么做?可以使用任何编程语言。
提前致谢!
解决方案
这是一个用重复字符串修改的 Boogle 板问题。
我相信您可以及时解决O(N*M)
:N
列数和M
:行数。
您可以做的方法是在已匹配字符串中具有内存并标记为已访问的 BFS。
在此链接中,您可以看到带有字典的实现。您需要进行修改才能获得重复的字符串o
时间:https ://gist.github.com/davidreynolds/2865498
推荐阅读
- audio - 立体声/单声道未知的ffmpeg音频通道布局
- python - 如何为列中的每个值绘制不同的条形图,其中每个图对应于另一列中的值?
- sql - 新年累计金额从零开始
- javascript - 如何使用 Jquery 在 datetimepicker 中将颜色应用于周末(周六和周日)以及下个月或上个月的日期
- javascript - Nodejs axios http请求循环
- azure-ad-b2c - 提取 JSON 中的特定声明
- python-3.x - 在 python 中使用烧瓶获取 ModuleNotFound 错误
- java - 如何为我的支付网关项目设置数据库?
- python - 如何修复这个简单的 Python 程序?我想我的逻辑错了
- ssis - SSIS:如何逐步将失败文件移动到失败文件夹