Entrevista a los 150 mejoresfácil

Búsqueda de palabras II

Guía detallada e implementación Python para el problema 'Búsqueda de palabras II'.

Declaración del problema

fácil

Dado un tablero de caracteres mx n y una lista de cadenas de palabras, devuelve todas las palabras del tablero.

Cada palabra debe construirse a partir de letras de celdas secuencialmente adyacentes, donde las celdas adyacentes son vecinas horizontal o verticalmente. La misma celda de letra no se puede utilizar más de una vez en una palabra.

Escribe una función findWords(board: List[List[str]], words: List[str]) -> List[str].

Restricciones
  • m == len(board)
  • n == len(board[i])
  • 1 <= m, n <= 12
  • board[i][j] is a lowercase English letter
  • 1 <= len(words) <= 3 * 10^4
  • 1 <= len(words[i]) <= 10
  • words consist of lowercase English letters
  • All the strings in words are unique

Ejemplos

Example 1
Input
board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"]], words = ["oath","pea","eat","rain"]
Output
["oath","eat"]
Explanation

The words "oath" and "eat" can be found on the board. "pea" and "rain" cannot.

Example 2
Input
board = [["a","b"],["c","d"]], words = ["abcb"]
Output
[]
Explanation

The word "abcb" requires using the 'b' cell twice, which is invalid.

Need a Hint?
Considere la posibilidad de utilizar estructuras de datos específicas de Trie, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir en el editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.