Menu
CoddyTech

Word Ladder

Bạn được cho hai từ, beginWord và endWord, cùng một danh sách từ wordList. Một chuỗi biến đổi bắt đầu bằng beginWord, kết thúc bằng endWord và thay đổi chính xác một chữ cái từ mỗi từ sang từ tiếp theo. Mọi từ sau beginWord đều phải có trong wordList, vì vậy endWord phải có trong danh sách này, còn beginWord thì không nhất thiết phải có.

Trả về số từ trong chuỗi biến đổi ngắn nhất, tính cả hai từ đầu và cuối, hoặc 0 nếu không có chuỗi nào.

Hàm

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
từ đầu tiên của chiếc thang
endWordstring
từ cái thang phải chạm tới
wordListstring-array
các từ mà mọi bước sau phải lấy từ đó
Trả vềinteger
số từ trong chuỗi bậc thang ngắn nhất, hoặc 0 nếu không có

Ràng buộc

  • 1 ≤ beginWord.length ≤ 10
  • endWord và mọi từ trong wordList có cùng độ dài với beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Mọi từ chỉ chứa chữ cái tiếng Anh viết thường.
  • beginWord != endWord
  • Các từ trong wordList đều khác nhau. beginWord có thể có hoặc không nằm trong danh sách đó.

Ví dụ

Đầu vào
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Đầu ra
4
Giải thích
lead và gold khác nhau ở ba chữ cái, nên một thang từ cần ít nhất 4 từ, và lead, load, goad, gold có 4 từ. lend và lewd là những ngõ cụt.
challenge icon

Câu hỏi mở rộng

Bạn có thể trả về một chiếc thang ngắn nhất, gồm các từ theo thứ tự, thay vì độ dài của nó không?

Đặt lại code
def ladderLength(beginWord, endWord, wordList):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

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

Đầu ra mong đợi

4