這題第一眼其實看不太出來是 graph 題,但仔細分析會發現是一個單詞,然後能 reach 到的是換一個字母的單詞,就是鄰居;然後要找最短路徑。 難就是難在一開始要把問題轉化成一個 graph!
這種飛航問題基本上都是屬於 Graph 題,題目敘述也很生活化(
根本旅行必備知識)。 因為所有的路徑有且只會被用一次,故是一個 Euler Circuit。進一步抽象,可說這題是屬於 Post-order traversal on Edges 問題。 從入口做 post-order ,會是出口先被紀錄,然後再往回 backtracking 回入口,把路上的所有 node 都記下來。 老實說技巧性有點太強,且還是高頻…。 另外注意英文閱讀,有些單字很重要例如 lexical order,沒注意到可能會出現錯誤。
Graph 用於表示物體與物體之間存在某種關係的結構,是內存中不一定連續的資料,每個節點會一個或多個 Reference 指向其他節點
- 可能有環
- 分無向圖和有向圖
- 沒有固定入口
- 可能有多個入口
剛開始刷題時就覺得這題很有趣,有 game 的感覺。可以用來複習DFS、BFS。