給出兩個單詞(start和end)和乙個字典,找出從start到end的最短轉換序列,輸出最短序列的長度。
變換規則如下:
每次只能改變乙個字母。
變換過程中的中間單詞必須在字典**現。(起始單詞和結束單詞不需要出現在字典中)
輸入:start = 「a」,end = 「c」,dict =[「a」,」b」,」c」]
輸出:2
解釋:「a」->」c」
輸入:start =」hit」,end = 「cog」,dict =[「hot」,」dot」,」dog」,」lot」,」log」]
輸出:5
解釋:「hit」->」hot」->」dot」->」dog」->」cog」
如果不存在這樣的轉換序列,返回 0。
所有單詞具有相同的長度。
所有單詞只由小寫字母組成。
字典中不存在重複的單詞。
你可以假設 beginword 和 endword 是非空的,且二者不相同。
bfs使用乙個佇列,把和start距離為n的依次放入,每次遍歷佇列中所有元素,如果和end距離為1則可以返回,否則將距離為n+1的放入。
迴圈條件為佇列不為空,如果為空,說明沒有這樣的轉換序列,返回0
使用unodered_set遍歷時一直出現溢位報錯 於是換成了vector,此問題先放著
1234567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
4445
4647
4849
5051
5253
5455
5657
5859
6061
classsolution
return res;
}int
ladderlength
(string &start, string &end, unordered_set
dict)
int res = 2;
while(!q.empty())
else
++it;}}
res++;
}return0;}
};
-------------end of file
thanks for reading-------------
lintcode 單詞接龍 120
給出兩個單詞 start和end 和乙個字典,找到從start到end的最短轉換序列 比如 每次只能改變乙個字母。變換過程中的中間單詞必須在字典中出現。您在真實的面試中是否遇到過這個題?樣例 給出資料如下 start hit end cog dict hot dot dog lot log 乙個最短...
Lint Code 120 單詞接龍
雖然知道是使用bfs求樹節點之間的最短路徑問題但是還是碼不出來,看的答案,失敗,具體思路和二叉樹的層次遍歷近似 123 import org.junit.test 45 import j a.util.67 public class ladderlength 46if start.equals en...
LintCode 120 單詞接龍 廣度優先搜尋
給出兩個單詞 start和end 和乙個字典,找到從start到end的最短轉換序列 比如 每次只能改變乙個字母。變換過程中的中間單詞必須在字典中出現。注意事項 如果沒有轉換序列則返回0。所有單詞具有相同的長度。所有單詞都只包含小寫字母。樣例 給出資料如下 start hit end cog dic...