查找矩阵中对角线的单词字母

2024-01-28

我有一个5*6的矩阵,所有的值都是英文字母。我必须在矩阵中从左到右、从右到左、从上到下、从上到对角线找到特定的单词。其实这是一个字谜。

我能找到“左右”、“右左”、“上下”和“下上”这些词。当涉及到对角线查找单词时,事情会变得更加混乱。我提供了从左到右和从右到左搜索的示例代码。

#the word I am looking for
word_list = ["CRAM", "ROTLQ", "TDML", "COOI"]

# create the matrix array or puzzle
letter_array = np.matrix([['C','R','A','M','B','A' ],
 ['R','O','T','L','Q','C' ],
 ['E','O','O','A','U','A'],
 ['I','T','E','I','A','L' ],
 ['I','A','L','M','D','T']])

#itenarate through word list
for word in word_list:

    #flatten the array, convert it to list, 
    #finally join everythig to make a long string
    left_right = ''.join(letter_array.flatten().tolist()[0])

    # flip the string to search from right to left
    right_left = left_right[::-1]


    # if the word is there, it gives the index otherwise it gives -1
    if left_right.find(word)>-1:
        row, col = divmod(left_right.find(word), 6)
        print ("The word is in left to right combination, row and column = ", row, col)

    # look from right to left
    elif right_left.find(word)>-1:
        row, col = divmod(right_left.find(word), 6)
        print ("The word is in right to left combination, row and column = ", row, col)

    else:
        print ("The word is in up down or diagonally located")

Results

The word is in left to right combination, row and column =  0 0
The word is in left to right combination, row and column =  1 0
The word is in right to left combination, row and column =  0 0
The word is in up down or diagonally located

然而,通过对矩阵进行转置,也可以完成上下和上下的搜索。但是,我不知道如何对角搜索。有什么方法可以对角搜索吗?或者,还有其他简单的解决方案可以解决整个问题吗?


正如您已经知道如何搜索字符串中的单词(但请阅读我的评论),我在这里提供了一种如何提取对角线的方法。

def diagelem(ll, a, b):
    try:
        if a < 0 or b < 0:
            raise IndexError
        return ll[a, b]
    except IndexError:
        return None

我需要定义这个函数来提取矩阵的单个对角元素。为了避免矩阵周围出现圆形,我添加了一个raise IndexError如果索引小于 0,则声明。我认为您不希望这样,但如果我错了,请删除if函数内的语句应该赋予您循环性。

dd = []
for j in range(-letter_array.shape[0]+1, letter_array.shape[0]):
    dd.append([diagelem(letter_array, i, i+j) for i in range(letter_array.shape[1])])

for j in range(0, 2*letter_array.shape[0]):
    dd.append([diagelem(letter_array, i, -i+j) for i in range(letter_array.shape[1])])

diagonals = []
for diag in dd:
    diagword = ''.join([letter for letter in diag if letter is not None])
    if len(diagword) > 0:
        diagonals.append(diagword)

print(diagonals)

前两个循环从对角线构建单词。第一个循环从左上到右下对角线构建单词,第二个循环从左下到右上构建单词。dd这是一个列表列表,其中有几个None里面。第三个循环将构建单词的内部列表连接在一起。到底diagonals是从对角线构建的单词列表。您可以搜索是否包含以下单词word_list位于任何单词内diagonal使用您发布的相同逻辑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找矩阵中对角线的单词字母 的相关文章

随机推荐

  • Spring Data REST 返回 http 405 请求嵌套资源列表

    我正在使用 Spring Boot 1 5 7 Spring Data REST Spring HATEOAS Hibernate Spring Validation Swagger 我通过 Spring Data REST 公开我的所有存
  • Laravel Model 主键值插入后丢失

  • 在tensorflow js中重新训练图像分类器

    你好 有什么想法可以将重新训练图像分类器转换为与tensorflow js一起使用吗 从https www tensorflow org hub tutorials image retraining https www tensorflow
  • OS X 上的 Perl Unicode 测试在 Debian 上失败

    我有以下测试 use Test More use Lingua EN NameCase nc use utf8 my output Test Builder gt new gt todo output binmode output enco
  • 在 rdlc 文件中隐藏文本框时保留空白

    我创建了一个报告 该报告的左侧有一个图像 该图像根据传入该报告的参数有条件地可见 页面右侧还有另一个文本框 我观察到 当图像的隐藏属性设置为 True 时 右侧的文本框将保留在正确的位置 当图像的 Hidden 属性设置为 IFF 1 1
  • addEventListener 到 AngularJS 中的简单指令示例

    试图得到this http codepen io softwareeveryday pen beBxmp非常基本的指令示例 从一些调查来看 elem 似乎是一个对象HTML标题元素 继承自 Element 不知道为什么elem addEve
  • 如何使用 Oauth 在 django 中更新 Twitter 的状态

    感谢omab 的social auth 项目 我添加了我的网站twitter 登录 效果很好 但我想让经过身份验证的用户在我的网站上分享推文成为可能 我怎样才能做到这个要求呢 任何帮助和想法将不胜感激 我不确定social auth but
  • 如何在 Excel 中将列转置为行

    我有以下 Excel 工作表 A 1 foo 2 bar 3 baz 4 bam 实际上 该列要长得多 使得手动转发不成为一种选择 我怎样才能把这张纸变成 A B C D 1 foo bar baz bam 我尝试过数据透视表功能 但无法获
  • 如何在 Symfony 中延长会话 cookie 的生命周期?

    在服务器端访问会话数据时 modified time被设置 因此将其过期时间延长到未来 然而 这不会发生在PHPSESSID曲奇饼 虽然服务器端的会话数据过期时间得到延长 但 cookie 过期时间却没有延长 如果 cookie 过期 用户
  • 如何在Wordpress中隐藏模板? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有没有办法在管理中隐藏模板文件 例如 我有一个模板 仅在安装了特定插件后才可用 并且我已经知道如何检查插件是否处于活动状态 但是如何隐藏模板呢 例如
  • 使用 MailKit / MimeKit 从电子邮件中删除附件

    我正在使用 MailKit 库来处理电子邮件 它运行良好 但是 我试图将电子邮件拆分为其组成文件 a 主电子邮件 无附件 b 单个附件文件 以存储在文件系统上 我可以单独保存附件 但似乎无法从电子邮件正文代码中删除它们 IE 它们与主电子邮
  • 使用 Django 通道进行会话身份验证

    尝试使用 Django 通道进行身份验证 使用一个非常简单的 websockets 应用程序 该应用程序回显用户使用前缀发送的任何内容 You said 我的流程 web gunicorn myproject wsgi log file p
  • Log4j 配置和观察无法正常工作

    我在我的应用程序中使用 log4j 进行日志记录 从现在开始 我使用以下代码来配置日志记录 LogManager resetConfiguration InputStream stream Thread currentThread getC
  • Android Studio:尝试呈现 XML 布局时出现 InvalidVirtualFileAccessException

    我正在尝试在我的应用程序中预览 xml 布局 任何 xml 布局 我正在使用 Android Studio 1 5 Preview 2 我一遍又一遍地收到此错误 InvalidVirtualFileAccessException 访问无效的
  • 使用 Excel VBA 运行 SQL 查询

    我对 SQL 和 VBA 相当陌生 我编写了一个 SQL 查询 我希望能够从 Excel 工作簿中的 VBA 子程序调用和运行该查询 然后将查询结果带入工作簿中 我在网上找到了一些潜艇 stackoverflow 和其他地方 声称可以这样做
  • 寻找家谱[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为我的 Web 应用程序创建具有 HTML5 要求的家谱功能 我已经搜索并找到了一些 JS 示例 但没有找到符合我要求的 我已经尝试
  • 隐藏特定子页面上的 Ionic TabBar (IONIC 3)

    我想在多个特定页面上隐藏我的标签栏 我的主要重点是将其隐藏在我的登录页面 注册页面和评论页面上 我尝试过 tabsHideOnSubPages true 但是当我这样做时我的 UserProfile 页面 这是一个子页面 隐藏选项卡栏 选项
  • 如何在 SSL 下从 PDO 连接 MySQL

    我已经配置了MySQLubuntu 服务器中的 SSL show variables like ssl Variable name Value have openssl YES have ssl YES ssl ca etc mysql c
  • 配置 WEBUTIL 后 Oracle Form 冻结

    我正在使用 Oracle Forms 10g 它是基于 Web 的 Oracle 表单应用程序 我想从 Oracle Forms 10g 生成 Excel 报告 我配置了 WEBUTIL 并使用 CLIENT OLE2 包 在触发器 WHE
  • 查找矩阵中对角线的单词字母

    我有一个5 6的矩阵 所有的值都是英文字母 我必须在矩阵中从左到右 从右到左 从上到下 从上到对角线找到特定的单词 其实这是一个字谜 我能找到 左右 右左 上下 和 下上 这些词 当涉及到对角线查找单词时 事情会变得更加混乱 我提供了从左到