单词搜索项目

alphabet-soup-lambert的Python项目详细描述


字母汤

You have been contracted from a newspaper tasked with the job of providing an answer key to their word search for the Sunday print. The newspaper's word search is a traditional game consisting of a grid of characters in which a selection of words have been hidden. You are provided with the list of words that have been hidden and must find the words within the grid of characters.

要求

加载一个字符网格,其中嵌入了乱序单词和要查找的单词的单词列表。以下内容 适用条件:

  • 在字符网格中,单词可以是垂直的、水平的或对角的。在
  • 在字符网格中,单词可能向前或向后出现。在
  • 当隐藏在字符网格中时,包含空格的单词将不包含空格。在

执行

在解决这个问题时,我首先列出了我需要的东西——一种读取和存储单词和网格的方法 给定的文件。我还需要编写能够在网格中搜索以及传递 检索到周围的位置。我决定最好使用字典,这样当打印输出到 控制台,一个for循环就可以通过它。我还创建了一个列表来存储单词,并创建了一个2D列表来存储 网格。在

Analyze是读取和解析文件的位置。Word_find是用于创建词典和 调用每个搜索函数。当运行搜索时,我想为每个搜索创建一个单独的函数 使代码更干净、更易于测试。垂直和水平是最直接的两个 函数-基于行和列。对角线搜索主要是使用打印语句进行尝试和错误查看 正在访问网格的哪些部分。在列表中使用join似乎是搜索单词最简单的方法。这个 每个对角方法中元组的位置列表使得根据位置跟踪元素的位置变得更容易 它们位于当前字符串中。在

在测试时,我将analyze创建为一个单独的函数,这样就可以在不请求 输入文件。我做了一些研究,并试图让它与一个模拟输入文件一起工作。我就是这样 我要继续工作,这样我就可以学了。作为解决方法,我创建了一个analyze can的输出文本文件 写入以在运行测试时与应答文件进行比较。测试的每个方向都有一个测试 在网格中前进和后退的单词。还有一个测试,它可以让单词在各个方向 确保所有功能协同工作。在

样本数据

以下是作为示例输入和输出数据集之一。在

输入

10x10
H A S S T A S T U I
S E Y B S P L E A T
B K R N A E J A U E
I V G D F K T S B N
G O O D E Y I S K L
W N O E L D N I I T
M M S L T R K X Q L
Q U E E N J W K S A
S A D T I V I T C A
P I R X T O V I P Q
TINT
HERDED
GOOD
LIST
LEAP
SPA
QUEEN
TEAS
GOOSE
KNIT
SEEK
TEAS

输出

^{pr2}$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null