收資料的時候使用兩個字串將起點跟終點收起來,可以使用 Pair<int, int> 來存,Pair.first 就會是數字的部分,Pair.second 會是 字母的部分,可以用「字母 – ‘a’ + 1」將字母換成數字,記得要+1因為BFS跑的是 1-Base。
跟普通的 BFS 概念相同,只是不是上下左右走,要用西洋棋的騎士的走法走 BFS,可以宣告一個陣列 int loc[8][2] = {{-2, 1}, {-1, 2}, {1, 2}, {2, 1}, {2, -1}, {1, -2}, {-1, -2}, {-2, -1}},這些就是騎士的走法,記得不能重複走到相同的點上,可以使用 Map 來紀錄。
可以預設一個 count 變數為 0,每一次重新呼叫 BFS 時就將 count++。當找到終點了就 return count。