Untitled

 avatar
unknown
plain_text
5 months ago
1.2 kB
4
Indexable
def count_pattern_occurrences(image, pattern, R, C, A, B):
    count = 0
    for i in range(R - A + 1):
        for j in range(C - B + 1):
            match = True
            for x in range(A):
                for y in range(B):
                    if pattern[x][y] != '?' and pattern[x][y] != image[i + x][j + y]:
                        match = False
                        break
                if not match:
                    break
            if match:
                count += 1
    return count

def main():
    import sys
    input = sys.stdin.read
    data = input().splitlines()
    
    index = 0
    T = int(data[index])
    index += 1
    results = []
    
    for _ in range(T):
        R, C = map(int, data[index].split())
        index += 1
        image = [data[index + i] for i in range(R)]
        index += R
        
        A, B = map(int, data[index].split())
        index += 1
        pattern = [data[index + i] for i in range(A)]
        index += A
        
        occurrences = count_pattern_occurrences(image, pattern, R, C, A, B)
        results.append(occurrences)
    
    for result in results:
        print(result)

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment