pengantar
Teka-teki kata yang populer adalah mengubah satu kata menjadi kata lain melalui serangkaian langkah yang hanya mengganti satu huruf dan yang selalu menghasilkan kata yang valid. Misalnya, BAG dapat dikonversi ke DOG melalui jalur lima langkah:
BAG -> BAT -> CAT -> COT -> COG -> DOG
Jalur yang lebih pendek juga ada dalam kasus ini; sebagai contoh:
BAG -> BOG -> DOG
Jika seseorang menggambar grafik yang simpulnya dilabeli dengan kata-kata, dengan tepi antara pasangan kata yang berbeda dengan satu huruf, maka jalur terpendek dari "BAG" ke "DOG" akan terdiri dari dua tepi.
Tantangan
Anda harus menulis sebuah program yang menerima sebagai masukan "kamus" kata-kata yang semuanya memiliki panjang yang sama, mewakili semua kata yang diijinkan yang dapat muncul sebagai langkah-langkah di sepanjang jalur. Ini harus menghasilkan setidaknya satu "jalan terpendek terpanjang", yaitu jalur antara dua kata yaitu:
tidak lebih dari jalan lain di antara kedua kata itu;
setidaknya selama jalur terpendek yang mungkin antara pasangan kata lain dalam daftar.
Dalam konteks grafik yang dijelaskan di atas, panjang jalur tersebut adalah diameter grafik.
Dalam kasus degenerasi di mana tidak ada kata-kata input dapat diubah menjadi yang lain, output setidaknya satu jalur dengan panjang nol, yaitu, satu kata.
Contohnya
Input ["bag", "bat", "cat", "cot", "dot", "dog"] harus menghasilkan jalur yang melintasi semua enam kata dalam urutan itu (atau urutan terbalik), karena jalur terpendek dari " tas "ke" anjing "dalam kamus ini adalah yang paling lama dicapai, lima langkah.
Input ["bag", "bat", "bot", "cat", "cot", "dot", "dog"] harus menghasilkan path "bag, kelelawar, bot, titik, anjing" dan / atau pembalikan.
Input ["kode", "golf", "pria", "buzz", "mol", "peran", "cetakan", "dingin", "emas", "mode"] akan menghasilkan jalur antara "kode dan "golf".
Input ["satu", "dua", "enam", "sepuluh"] sesuai dengan grafik tanpa tepi, sehingga menghasilkan satu atau beberapa jalur kata-tunggal (panjang nol).
Jika input berisi dua kata dengan panjang yang tidak sama, outputnya tidak ditentukan.
Aturan
- Aturan golf kode standar berlaku
- Akan ada beberapa jalur "terpendek". Anda harus mengeluarkan setidaknya satu, tetapi bebas untuk menghasilkan sebanyak yang Anda inginkan.
- Anda bebas memutuskan bagaimana kamus input dimasukkan ke dalam program Anda.
- Kode terpendek dalam byte menang.
[]atau [[]])?