Поиск количества повторов одного слова в двумерном массиве
Дан массив 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]
Условия счетчикам видимо нужно ставить.