leetCode 單詞接龍 BFS

2022-02-13 12:07:50 字數 1631 閱讀 7691

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

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

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

說明:

1.如果不存在這樣的轉換序列,返回 0。

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

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

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

5.你可以假設 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" 不在字典中,所以無法進行轉換。

思路:bfs進行層序遍歷,每一層獲取到乙個符合條件的值就將該值從wordlist中刪除,到達尾結點直接返回長度。

/**

* @param beginword

* @param endword

* @param wordlist

* @return

*/var

ladderlength

=function

(beginword, endword, wordlist)

return

true;}

// 佇列記錄當前層的序列

let queue =

[beginword]

;let level =1;

//層數

while

(queue.length)

else}}

} level++;}

return0;

};let res =

ladderlength

("hit"

,"cog",[

"hot"

,"dot"

,"dog"

,"lot"

,"log"

,"cog"])

console.

log(res)

;

leetcode 127 單詞接龍 BFS

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

leetcode127 單詞接龍(bfs)

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

leetcode 127 單詞接龍 BFS

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