Поиск количества повторов одного слова в двумерном массиве

Дан массив 8*8, состоящий из цифр шестнадцатеричной системы счисления (0-15). Дана комбинации (допустим BAAB (11 10 10 11)). Двигаться по массиву для составления комбинации можно только влево/вправо/вверх/вниз. Как можно найти количество уникальных комбинаций ВААВ (т.к. комбинация является палиндромом)? Как вариант, найти количество всех комбинаций и разделить на два, но даже это я не знаю как реализовать.


Ответы (1 шт):

Автор решения: Константин

Задача мудренная,пока не совсем понятная,но вот наметки на Python,что бы на C for ... in range()->for(int i...,i<...,i++) делается:

#-*-coding: cp1251 -*-
matrix=[['1','2','3','4','5','6','7','8'],
        ['1','2','3','4','5','6','7','8'],
        ['1','2','3','4','5','6','7','8'],
        ['1','2','3','4','5','6','7','8'],
        ['1','2','3','4','5','6','7','8'],
        ['1','2','3','4','5','6','7','8'],
        ['1','2','3','4','5','6','7','8'],
        ['0','2','3','4','5','6','7','8']]

def faind_what(_matrix):
        cn=0
        cn_list=[]
        for fix_row in range(len(matrix)):
             for fix_elem in range(len(matrix[0])): # данный элемент сравнивается со всеми элементами
                for row in range(len(matrix)):
                        for elem in range(len(matrix[0])):
                                pass
                                if matrix[fix_row][fix_elem]==matrix[row][elem]:
                                        cn+=1

                cn_list.append(cn)
                cn=0

        return cn_list
if __name__ == '__main__':

  print(faind_what(matrix))#--->[7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 1, 8, 8, 8, 8, 8, 8, 8]

Условия счетчикам видимо нужно ставить.

→ Ссылка