127 單詞接龍(JS實現)

2021-10-08 18:49:14 字數 1618 閱讀 5575

給定兩個單詞(beginword 和 endword)和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下規則:

每次轉換只能改變乙個字母。

轉換過程中的中間單詞必須是字典中的單詞。

說明:如果不存在這樣的轉換序列,返回 0。

所有單詞具有相同的長度。

所有單詞只由小寫字母組成。

字典中不存在重複的單詞。

你可以假設 beginword 和 endword 是非空的,且二者不相同。

示例 1:

輸入:beginword = 「hit」,

endword = 「cog」,

wordlist = [「hot」,「dot」,「dog」,「lot」,「log」,「cog」]

輸出: 5

解釋: 乙個最短轉換序列是 「hit」 -> 「hot」 -> 「dot」 -> 「dog」 -> 「cog」,

返回它的長度 5。

示例 2:

輸入:beginword = 「hit」

endword = 「cog」

wordlist = [「hot」,「dot」,「dog」,「lot」,「log」]

輸出: 0

解釋: endword 「cog」 不在字典中,所以無法進行轉換。

這道題開始考察圖的遍歷,首先建立圖結構,連線具有相同字母的單詞,建立allwordskey為某種種形式,例如*otvalue為具有該形式的單詞列表,例如hot、dot、lot,這樣就可以快速得到指定形式的單詞,隨後從beginword開始廣度遍歷整個圖,當找到endword時,表明得到了轉換路徑

/**

* @param beginword

* @param endword

* @param wordlist

* @return

*/var

ladderlength

=function

(beginword, endword, wordlist)

;for

(let word of wordlist)*$

`;if(

!allwords[key]

) allwords[key]=[

];allwords[key]

.push

(word);}

}const quque =

;//index用於記錄走了多少步

const visited =

;while

(quque.length >0)

*$`;

if(!allwords[key]

)continue

;for

(let j=

0; j.length; j++))

; visited[word]

=true;}

}}return0;

};

127 單詞接龍

思路和126差不多,區別在於只用bfs,每次訪問一層,用乙個map來儲存訪問過的結點以及與起點的距離,避免重複訪問。最後輸出map中的終點項即可 import queue class solution def ladderlength self,beginword,endword,wordlist ...

127 單詞接龍

給定兩個單詞 beginword 和 endword 和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下規則 每次轉換只能改變乙個字母。轉換過程中的中間單詞必須是字典中的單詞。說明 示例 1 輸入 beginword hit endword cog wo...

127 單詞接龍

給定兩個單詞 beginword 和 endword 和乙個字典,找到從 beginword 到 endword 的最短轉換序列的長度。轉換需遵循如下規則 每次轉換只能改變乙個字母。轉換過程中的中間單詞必須是字典中的單詞。說明 如果不存在這樣的轉換序列,返回 0。所有單詞具有相同的長度。所有單詞只由...