給定兩個單詞(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。所有單詞具有相同的長度。所有單詞只由...