本問題是典型的矩陣搜索問題,可以使用 深度優先搜索(DFS)+ 剪枝 解決。
像是在暴力破解
一、遍歷矩陣,找到相同的字符,
二、從這個字符開始遞歸上下左右的字符,出界和與word[k+1]不等則返回false;
三、若與word[k+1]相同,且k是最後一個字符,就表示遞歸結束且有符合條件的字符串,返回true。
四、若與word[k+1]相同,但不是最後一個字符,就表示須要遞歸,這裏比較暴力了,
上下左右有一個符合的,就繼續遞歸下去,沒有符合的就中斷並返回false。從矩陣的下一個字符從新找與word的第一個字符相同的。數組
這裏還有一個重點!!:矩陣中的字符只能用一次,因此須要將判斷相同的字符置爲空格字符'\0',若是這條路走不通,即第四步返回了false,再恢復成原樣。
只要有一條路true了,就返回true,全部的路都走不通了等循環結束了才返回false。
注意:spa