Я ищу один быстрый способ найти слова в массиве и получить их буквенные индексы.
Слова могут быть размещены горизонтально, вертикально, по диагонали, в каждом направлении (слева направо, справа налево, сверху вниз, снизу вверх, снизу слева направо, сверху вниз, слева вверх, сверху вниз, сверху вниз справа вниз).
Основная проблема в диагональном измерении ... Как я могу это сделать?
Пример:
Matrix:
[['CHYD'],
['IAOB'],
['LGTA'],
['EFGE'],
['RXBW']]
Words:
['CAT',
'DOG',
'EGO',
'RELIC',
'TOY']
Мне нужно получить словарь с ключами = Rowindex и Value = [набор индексов столбцов букв найденных слов].
В моем примере я найду:
- 'CAT' в (0,0), (1,1), (2,2)
- 'СОБАКА' в (0,3), (1,2), (2,1)
- 'EGO' в (1,2), (2,1), (3,0)
- 'RELIC' в (0,0), (1,0), (2,0), (3,0), (4,0)
- «ИГРУШКА» в (0,2), (1,2), (2,2)
- 'TAC' в (0,0), (1,1), (2,2)
Я хотел бы, чтобы мой окончательный вывод был Found_Word = {0: [0,2,3], 1: [0,1,2], 2: [0,1,2], 3: [0], 4: [0]}
Вы можете мне помочь? Я надеюсь, что я был ясен:)
P.s. Я могу использовать все базовые библиотеки Python (включенные в дистрибутив Anaconda), такие как numpy, colleciotions, itemtools и тому подобное.
Я не могу использовать глобальные переменные или классы.