Lintcode120 Word Ladder solution 題解

【題目描述】

Given two words (startandend), and a dictionary, find the length of shortest transformation sequence fromstarttoend, such that:

1.Only one letter can be changed at a time

2.Each intermediate word must exist in the dictionary

給出兩個單詞(start和end)和一個字典,找到從start到end的最短轉換序列

比如:

1.每次只能改變一個字母。

2.變換過程中的中間單詞必須在字典中出現。

【注】1、如果沒有轉換序列則返回0。

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

3、所有單詞都只包含小寫字母。

【題目鏈接】

www.lintcode.com/en/problem/word-ladder/

【題目解析】

這道題是套用BFS同時也利用BFS能尋找最短路徑的特性來解決問題。

把每個單詞作爲一個node進行BFS。當取得當前字符串時,對他的每一位字符進行從a~z的替換,如果在字典裏面,就入隊,並將下層count++,並且爲了避免環路,需把在字典裏檢測到的單詞從字典裏刪除。這樣對於當前字符串的每一位字符安裝a~z替換後,在queue中的單詞就作爲下一層需要遍歷的單詞了。

正因爲BFS能夠把一層所有可能性都遍歷了,所以就保證了一旦找到一個單詞equals(end),那麼return的路徑肯定是最短的。

【參考答案】

www.jiuzhang.com/solutions/word-ladder/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章