from collections import defaultdict

def check_match(submatrix, pattern):
    char_to_digit = {}
    digit_to_char = defaultdict(set)
    
    for i in range(len(pattern)):
        for j in range(len(pattern[0])):
            if pattern[i][j].isdigit():
                if submatrix[i][j] != int(pattern[i][j]):
                    return False
            else:
                if pattern[i][j] in char_to_digit:
                    if submatrix[i][j] != char_to_digit[pattern[i][j]]:
                        return False
                else:
                    char_to_digit[pattern[i][j]] = submatrix[i][j]
                    digit_to_char[submatrix[i][j]].add(pattern[i][j])
    
    # Check if two distinct letters correspond to different digits
    for chars in digit_to_char.values():
        if len(chars) > 1:
            return False
            
    return True

def solution(board, pattern):
    rows_board, cols_board = len(board), len(board[0])
    rows_pattern, cols_pattern = len(pattern), len(pattern[0])
    
    for i in range(rows_board - rows_pattern + 1):
        for j in range(cols_board - cols_pattern + 1):
            submatrix = [[board[x][y] for y in range(j, j + cols_pattern)] for x in range(i, i + rows_pattern)]
            if check_match(submatrix, pattern):
                return [i, j]
    
    return [-1, -1]

# Test the function with the given example
board=[[2,4,2,4,2], 
 [4,1,4,2,5], 
 [1,4,2,2,3]]
pattern=[["b","2"], 
 ["a","a"]]
result = solution(board, pattern)
print(result)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: