Word Maze 是一个网络小游戏,你需要找到以字母标注的食物

def search(p,q,k):

    s = t = 0

    if len(word) == k:

        global findit

        findit = 1

        return

    flag[p][q] = 1

    for i in range(0,4):

        s = int(p) + int(a[i])

        t = int(q) + int(b[i])

        if s >= 0 and s < n and t >= 0 and t < m and flag[s][t] == 0 and m_maze[s][t] == w[k]:

            #查找字母位置在矩阵内,且该位置未被查找过,同时找到字母

            search(s,t,k + 1)

    flag[p][q] = 0

    return

if __name__ == '__main__':

 

    m_maze = [ ['\0'] * 100 for i in range(21) ]

    flag = [ [0] * 100 for i in range(21) ]

    findit = 0

    len_word = 0

    a = [ 0 for i in range(4)]

    b = [ 0 for i in range(4)]

    a[0], b[0] = 0, 1

    a[1], b[1] = 0, -1

    a[2], b[2] = -1, 0

    a[3], b[3] = 1, 0

    word = ""

    n = 0

    m = 0

    w = []

    matrix = input().strip().split()

    word = input().strip()

    w = list(word)

    n = int(matrix[0])

    m = int(matrix[1])

    for i in range(0,n): # 输入字母矩阵

        m_row_word = input().strip()

        for j in range(0,n):

            m_maze[i][j] = list(m_row_word)[j]

    for i in range(0,n):

        for j in range(0,m):

            if m_maze[i][j] == w[0]:

                flag[i][j] = 1     

                search(i, j, 1)

                flag[i][j] = 0

    if findit == 1:

        print('YES')

    else:

        print('NO')

你可能感兴趣的:(python,面试,程序人生)