【发布时间】:2022-11-06 01:31:07
【问题描述】:
我正在尝试解决单词搜索难题,但是,我不确定最有效的方法是什么。我知道如何search a word in a 2D grid of characters,但我有一个额外的条件,即确切的字符只能出现在一个单词中(见下图 - 用红色标记的单词 jp 不能存在,因为字母 j 已经是单词 gj 的一部分,并且p 是单词 pa 的一部分,因此单词 jp 的唯一可能位置是 (0,3),(1,3))。
一种可能的解决方案是将单词出现的所有坐标存储在一个数组中,然后使用两个 for 循环找到正确的位置。但是,我不确定这是否是最有效的解决方案。
提前致谢!
【问题讨论】:
-
为了确保我理解这个问题 - 目标是将网格划分为水平、垂直或对角线而不重叠?是否有任何规则来管理哪些词是合法的?
-
@templatetypedef 是的,这就是目标。单词在列表中给出,您必须在网格中找到它们。
-
您是否熟悉确切的封面问题或跳舞链接算法?
-
您正在使用多大的网格?
-
@templatetypedef 抱歉回复晚了。我正在阅读确切的封面问题;但是,我不确定如何使用 2D 数组来实现它(它表示给定单词的所有可能解决方案 - 例如在上面的问题中,单词 jp 的数组将是 {{(2,4),(3, 4)},{(3,0),(3,1)}})。没有网格限制。
标签: arrays algorithm time-complexity