Menu
CoddyTech

Word Ladder

むずかしいグラフキューpython iconjava iconcpp iconc iconjs icon+10

2つの単語 beginWord と endWord、および単語のリスト wordList が与えられます。ラダーとは、beginWord から始まり、endWord で終わる単語の列で、隣り合う単語同士でちょうど1文字だけが変わります。beginWord の後に続くすべての単語は、wordList に含まれていなければなりません。

最短のラダーに含まれる単語の数を、両端の単語を含めて返してください。ラダーが存在しない場合は 0 を返してください。たとえば、cold、cord、card は3語のラダーです。beginWord は wordList に含まれていなくてもかまいませんが、endWord は含まれていなければなりません。

関数

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
はしごの最初の単語
endWordstring
はしごが到達しなければならない単語
wordListstring-array
以降のすべてのステップで使用する単語
戻り値integer
最短のラダーに含まれる単語数。存在しない場合は0

制約

  • 1 ≤ beginWord.length ≤ 10
  • endWord と wordList 内のすべての単語は、beginWord と同じ長さです。
  • 1 ≤ wordList.length ≤ 5000
  • すべての単語は小文字の英字のみで構成されています。
  • beginWord != endWord
  • wordList に含まれる単語はすべて異なります。beginWord はその中に含まれる場合も、含まれない場合もあります。

例

入力
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
出力
4
説明
lead と gold は3文字異なるため、ラダーの単語数は少なくとも4語です。また、lead、load、goad、gold はちょうど4語です。lend と lewd も lead とは1文字違いますが、どちらも新たな行き先にはつながらず、bold にたどり着けるのは gold からだけです。

lock icon提出時に隠しテスト+14件

challenge icon

発展問題

最短の単語変換経路を1つ、単語を順番に並べて返し、その長さだけでなく経路そのものを返すことはできますか?

コードをリセット
def ladderLength(beginWord, endWord, wordList):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

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

期待値

4