Menu
CoddyTech

Word Search

ŚrednieNawrotyGrafypython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz siatkę liter board, podaną jako listę ciągów znaków, w której board[r][c] to litera w wierszu r, kolumnie c, oraz ciąg znaków word.

Zwróć true, jeśli możesz prześledzić word na siatce: zacznij w dowolnej komórce, a następnie za każdym razem przejdź do komórki bezpośrednio nad, pod, po lewej lub po prawej stronie bieżącej komórki, tak aby odwiedzane komórki układały się w word we właściwej kolejności. Podczas śledzenia nie można użyć tej samej komórki dwa razy. W przeciwnym razie zwróć false. Wielkość liter ma znaczenie, więc a i A to różne litery.

Funkcja

exist(board: string-array, word: string) → boolean
boardstring-array
siatka, jeden ciąg liter w każdym wierszu
wordstring
słowo do odrysowania
Zwracaboolean
czy słowo można prześledzić przez sąsiadujące komórki, używając każdej z nich co najwyżej raz

Ograniczenia

  • 1 ≤ board.length ≤ 6
  • 1 ≤ board[i].length ≤ 6, a każdy wiersz ma taką samą długość.
  • 1 ≤ word.length ≤ 20
  • board i word zawierają wyłącznie litery alfabetu angielskiego — wielkie i małe.

Przykłady

Wejście
board = ["STAR", "POOL", "ENDS"]word = "STOOLS"
Wyjście
true
Wyjaśnienie
Zacznij na S w wierszu 0, kolumnie 0, następnie przejdź w prawo do T, w dół do O, w prawo do drugiego O, w prawo do L, a potem w dół do S w wierszu 2, kolumnie 3. To sześć różnych komórek, z których każda sąsiaduje z poprzednią.

lock icon+23 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Zamiast odpowiedzi „tak” lub „nie” możesz policzyć, ile różnych ścieżek word zawiera plansza?

Zresetuj kod
def exist(board, word):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

board = ["STAR", "POOL", "ENDS"]
word = "STOOLS"

Oczekiwane

true