如果一个单词存在于一个由随机字母组成的4x4网格( an ).Can中,您将如何进行搜索?有人将我引向了解决这个问题的有效方法的正确方向。
以下是条件:
谢谢你们的帮助!
发布于 2012-01-27 23:28:34
如果您只是在4X4网格上工作,那么它应该非常简单。扫描单词的第一个字母,并在每个方向搜索该单词是否可以从网格中完成。
如果网格非常大,并且/或正在执行大量搜索,您可能需要先对网格进行预处理。例如:对于每一对字符(让我们称它们为k-克,因为通常您希望跟踪k个字符),您可以保留它们所在位置的列表。当你搜索的时候,首先寻找那个单词的k克的位置。
发布于 2012-01-27 23:43:30
首先,我将以一个具有字母和空格的网格表示开始。
我会写一个例程,作为参数,像这样的网格和一个起始字母,并返回一个可能的单词列表。
我会写一个迭代器,为这样一个网格返回与给定字母相邻的每个字母。它将识别空白,而不返回它们。
我会写一个例行公事,用一个字母和我的网格,把信从网格中移除,对于每一个相邻的字母,用新的网格和新的字母命名自己。
如果你真的想搜索一个单词,你可以把它传递到这些例程中,这样一旦你有一个不匹配的单词,你就会失败。
否则,您可以使用它生成一个完整的单词列表。
https://stackoverflow.com/questions/9041293
复制相似问题