寫在前面:
最近學習的都是圖相關的演算法,這次以bfs為主題找了一道題目。
題意解讀:
給定兩個單詞——起始詞和結束詞以及乙個單詞序列,從起始詞開始,每次只變動乙個字母,成為序列中的另外乙個詞,n次變化後變成結束詞。
起始詞不在序列中。求最小變化次數,如果不能變為結束詞則返回0. 且所有單詞都一樣的長度都一樣。
解題思路:
將序列中都單詞以及起始詞視作節點,單詞與單詞之間如果只差別乙個字母,則有邊相連。
則問題則變成求從起始詞點到結束詞點的最短路徑。
用廣度優先搜尋演算法,將起始詞放入佇列中,將佇列中的每個單詞,從頭到位換26個字母,
如果換成了的單詞存在單詞序列中、而且沒被訪問過,則將其加入佇列。
直到在序列中找到的單詞,剛好也是結束詞,結束搜尋。
由於需要返回路徑長度,所以在bfs的過程中也將路徑數累加儲存起來。
**:
#include #include class solution }}
}return 0;}};
執行結果:
第五周課後作業
暴雪公司之前借助魔獸世界 星際爭霸等遊戲佔據了早期電子競技遊戲市場的半壁江山,擁有大量的玩家。但是隨著越來越多的新遊戲 lol puge 的加入,暴雪公司開始損失大量玩家,公司一度陷入困境。但是2年前,暴雪推出的一款 爐石傳說 的遊戲則拯救了公司,並且再次擁有了大量玩家。爐石傳說 這款遊戲摒棄了以往...
第五周作業
includeusing namespace std class student 用引數的初始化表對資料成員初始化。void max student arr void display private int num int score void student display void studen...
第五周作業
5求自然對數 include using namespace std int main cout e 6求圓周率 include include using namespace std int main cout pi約等於 7 include using namespace std int mai...