Menu
CoddyTech

Word Ladder

TrudneGrafyKolejkapython iconjava iconcpp iconc iconjs icon+10

Otrzymujesz dwa słowa: beginWord i endWord, oraz listę słów wordList. Ścieżka zaczyna się od beginWord, kończy na endWord i każdorazowo zmienia dokładnie jedną literę z jednego słowa na następne. Każde słowo po beginWord musi pochodzić z wordList, więc endWord musi się na niej znajdować; beginWord nie musi.

Zwróć liczbę słów w najkrótszej ścieżce, licząc oba końce, lub 0, jeśli taka ścieżka nie istnieje.

Funkcja

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
pierwsze słowo drabiny
endWordstring
słowo „drabina” musi sięgać
wordListstring-array
słowa, z których musi pochodzić każdy kolejny krok
Zwracainteger
liczba słów w najkrótszej drabince albo 0, jeśli jej nie ma

Ograniczenia

  • 1 ≤ beginWord.length ≤ 10
  • endWord i każde słowo w wordList ma taką samą długość jak beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Wszystkie słowa zawierają wyłącznie małe litery alfabetu angielskiego.
  • beginWord != endWord
  • Słowa w wordList są różne. beginWord może być jednym z nich, ale nie musi.

Przykłady

Wejście
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Wyjście
4
Wyjaśnienie
lead i gold różnią się trzema literami, więc drabinka wymaga co najmniej 4 słów, a lead, load, goad, gold to 4 słowa. lend i lewd prowadzą donikąd.
challenge icon

Pytanie dodatkowe

Czy możesz zwrócić jedną najkrótszą drabinkę w postaci kolejnych słów, zamiast jej długości?

Zresetuj kod
def ladderLength(beginWord, endWord, wordList):
    # Wpisz kod tutaj

Test #1

Test #2

Test #3

Argumenty

beginWord = "lead"
endWord = "gold"
wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]

Oczekiwany wynik

4