Trace o caminho da palavra

Uma grade de letras pode conter uma palavra escondida em algum lugar. As letras da palavra podem ser rastreadas a partir da letra inicial, movendo-se uma letra por vez para cima, para baixo, para a esquerda ou para a direita. Por exemplo, suponha que estamos procurando a palavra BISCUIT nesta grade:

[
  ["B","I","T","R"],
  ["I","U","A","S"],
  ["S","C","V","W"],
  ["D","O","N","E"]
]

A palavra começa no canto superior esquerdo, continua para baixo por mais 2 letras, depois segue para a letra à direita e, em seguida, passa por 2 letras movendo-se para cima; a letra final fica à direita da penúltima.

Escreva uma função que receba uma palavra-alvo e uma grade de letras e retorne uma lista de tuplas, cada tupla contendo a linha e a coluna da letra correspondente na grade (numeradas a partir de 0). Se a palavra não puder ser encontrada, produza a string "Not present".

Exemplos

trace_word_path("BISCUIT", [
  ["B", "I", "T", "R"],
  ["I", "U", "A", "S"],
  ["S", "C", "V", "W"],
  ["D", "O", "N", "E"]
]) ➞ [(0, 0), (1, 0), (2, 0), (2, 1), (1, 1), (0, 1), (0, 2)]

trace_word_path("HELPFUL", [
  ["L","I","T","R"],
  ["U","U","A","S"],
  ["L","U","P","O"],
  ["E","F","E","H"]
]) ➞ "Not present"

Notas

  • A palavra-alvo nunca terá mais letras do que a grade de letras.
  • A palavra-alvo e a grade de letras estarão em letras maiúsculas.