Menu
CoddyTech

Word Ladder

Sana iki kelime, beginWord ve endWord, ayrıca wordList adlı bir kelime listesi verilir. Bir dönüşüm dizisi beginWord ile başlar, endWord ile biter ve her adımda bir kelimeden sonrakine geçerken tam olarak bir harf değişir. beginWord sonrasındaki her kelime wordList içinden gelmelidir; dolayısıyla endWord bu listede bulunmalıdır, ancak beginWord listede bulunmak zorunda değildir.

Her iki ucu da sayarak en kısa dönüşüm dizisindeki kelime sayısını döndür; böyle bir dizi yoksa 0 döndür.

Fonksiyon

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
merdivenin ilk kelimesi
endWordstring
Merdivenin ulaşması gereken kelime
wordListstring-array
sonraki her adımın türemesi gereken sözcükler
Döndürürinteger
en kısa merdivendeki kelime sayısı veya hiç yoksa 0

Kısıtlar

  • 1 ≤ beginWord.length ≤ 10
  • endWord ve wordList içindeki her kelime, beginWord ile aynı uzunluğa sahiptir.
  • 1 ≤ wordList.length ≤ 5000
  • Tüm sözcükler yalnızca küçük harfli İngilizce harfler içerir.
  • beginWord != endWord
  • wordList içindeki sözcüklerin hepsi birbirinden farklıdır. beginWord bunlardan biri olabilir ya da olmayabilir.

Örnekler

Girdi
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Çıktı
4
Açıklama
lead ile gold üç harfte farklıdır, bu yüzden bir kelime merdiveni en az 4 kelime gerektirir ve lead, load, goad, gold 4 kelimeden oluşur. lend ve lewd çıkmaz sokaklardır.
challenge icon

Ek soru

Uzunluğu yerine en kısa merdivenlerden birini, kelimeleri sırayla döndürebilir misin?

Kodu sıfırla
def ladderLength(beginWord, endWord, wordList):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

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

Beklenen Çıktı

4