Return 转换为对角线列表的原始矩阵的索引 - Python 3
Return index of original matrix that was transformed in a diagonal list - Python 3
最初我有一个单词搜索难题,我的目标是在给定先前的单词列表的情况下找到其中的单词。我能够成功地找到水平和垂直线中的单词,但我无法找到对角线。
我的主要想法是把我输入的字母加入一个大字符串,然后在这个字符串中搜索单词,返回单词所属的行,然后我只检查它从哪里开始, 等等。
对于我的对角线,我的计划是一样的,但假设这是我的输入:
c l i o a
e a g b e
a r t l s
j i a u a
e e q u b
e u g r r
c i d e p
b i o s b
2
cat
big
一旦我在连接列表中转换我的对角线,这就是我得到的:
# first diagonal
first_diag = ['b', 'ci', 'eio', 'euds', 'jegeb', 'aiqrp', 'eraur', 'catub', 'lgla', 'ibs', 'oe', 'a']
# second diagonal
sec_diag = ['c', 'le', 'iaa', 'ogrj', 'abtie', 'elaee', 'suquc', 'augib', 'brdi', 'reo', 'ps', 'b']
据此,我将在我的原始拼图中找到单词 "cat"
在行 (0) 和列 (0) 中的位置。单词 "big"
[8][0] 也是如此。
预期输出:
c . . . .
. a . . .
. . t . .
. . . . .
. . . . .
. . g . .
. i . . .
b . . . .
我该怎么做,或者有其他方法吗?提前tnx.
编辑:如果需要,我可以post我的代码。
起初我将 row-/column- 对角字符串的值存储在四个数组中。
比方说,你的矩阵有 nr 行和 nc 列,那么
first_diag_r = [max(nr - 1 - i, 0) for i, _ in enumerate(first_diag)]
和
first_diag_c = [min(i, nc - 1) for i, _ in enumerate(first_diag)]
相应地 second_diag.
现在,如果您在其中找到一个单词,它不像上面的两个示例那样位于对角线字符串的开头,则必须计算此偏移量:
对于 first_diag 这意味着将偏移量添加到列值并从行值中减去偏移量。
最初我有一个单词搜索难题,我的目标是在给定先前的单词列表的情况下找到其中的单词。我能够成功地找到水平和垂直线中的单词,但我无法找到对角线。
我的主要想法是把我输入的字母加入一个大字符串,然后在这个字符串中搜索单词,返回单词所属的行,然后我只检查它从哪里开始, 等等。
对于我的对角线,我的计划是一样的,但假设这是我的输入:
c l i o a
e a g b e
a r t l s
j i a u a
e e q u b
e u g r r
c i d e p
b i o s b
2
cat
big
一旦我在连接列表中转换我的对角线,这就是我得到的:
# first diagonal
first_diag = ['b', 'ci', 'eio', 'euds', 'jegeb', 'aiqrp', 'eraur', 'catub', 'lgla', 'ibs', 'oe', 'a']
# second diagonal
sec_diag = ['c', 'le', 'iaa', 'ogrj', 'abtie', 'elaee', 'suquc', 'augib', 'brdi', 'reo', 'ps', 'b']
据此,我将在我的原始拼图中找到单词 "cat"
在行 (0) 和列 (0) 中的位置。单词 "big"
[8][0] 也是如此。
预期输出:
c . . . .
. a . . .
. . t . .
. . . . .
. . . . .
. . g . .
. i . . .
b . . . .
我该怎么做,或者有其他方法吗?提前tnx.
编辑:如果需要,我可以post我的代码。
起初我将 row-/column- 对角字符串的值存储在四个数组中。 比方说,你的矩阵有 nr 行和 nc 列,那么
first_diag_r = [max(nr - 1 - i, 0) for i, _ in enumerate(first_diag)]
和
first_diag_c = [min(i, nc - 1) for i, _ in enumerate(first_diag)]
相应地 second_diag.
现在,如果您在其中找到一个单词,它不像上面的两个示例那样位于对角线字符串的开头,则必须计算此偏移量: 对于 first_diag 这意味着将偏移量添加到列值并从行值中减去偏移量。