gpt4 book ai didi

python - 查找拼字板上的所有单词

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:59 25 4
gpt4 key购买 nike

当拼字板上由 2D 字符数组表示时,知道什么是简单快速的方法来将所有单词放在拼字板上吗?

提前致谢

最佳答案

这类似于 Artsiom's answer , 但涵盖了拼字游戏板在单词之间有空格的事实。

因此假设您的“二维字符数组”如下所示:

board = [['s','t','a','c','k',' ',' ',' '],
['p',' ',' ','a',' ','c',' ',' '],
['o','v','e','r','f','l','o','w'],
['o',' ','a','t',' ','a',' ','a'],
['n','o','t',' ',' ','m','a','t'],
[' ',' ','e',' ',' ',' ',' ','e'],
[' ',' ','r',' ',' ',' ',' ','r'],
[' ','e','y','e','s',' ',' ',' ']]

您可以执行以下操作:

import itertools
rows = (''.join(row) for row in board)
columns = (''.join(column) for column in zip(*board))
words = [word for line in itertools.chain(rows,columns) for word in line.split() if len(word) > 1]

给出:

['stack', 'overflow', 'at', 'not', 'mat', 'eyes', 'spoon', 'eatery', 'cart', 'clam', 'water']

我们正在做的是将每一行和每一列字符转换为字符串,如 'not mat' 然后使用 str.split()扔掉空格给我们一个单词列表,扔掉任何一个字母长的东西。

使用 itertools.chain()只允许我们在单个列表理解中循环遍历行和列。

关于python - 查找拼字板上的所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com