給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。
單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中「相鄰」單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。
示例:board =
[[『a』,『b』,『c』,『e』],
[『s』,『f』,『c』,『s』],
[『a』,『d』,『e』,『e』]
]給定 word = 「abcced」, 返回 true
給定 word = 「see」, 返回 true
給定 word = 「abcb」, 返回 false
board 和 word 中只包含大寫和小寫英文本母。
1 <= board.length <= 200
1 <= board[i].length <= 200
1 <= word.length <= 10^3
直接深搜。
class
solution
;int dy[4]
=;bool vis[
210]
[210];
int n =
0, m =0;
bool
judge
(int x,
int y)
bool f =0;
void
dfs(
int x,
int y,
int id, string word, vectorchar
>>
&a)for
(int i =
0; i <
4; i++
) vis[x]
[y]=
false
;//返回上一層時取消標記。
}bool
exist
(vectorchar
>>
& board, string word)}}
return f;}}
;
leetcode 79 單詞搜尋
本題算是乙個組合類的題,也類似於深度優先搜尋演算法 設定乙個與字母構成的陣列大小相同的陣列,用來儲存某個位置的字母是否被訪問過,標註為1表示已被訪問過,避免重複 每次要看i,j位置上下左右的字母是否等於單詞第t個位置的字母 進行深度優先搜尋 bool find std vector board,st...
leetcode 79 單詞搜尋
給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcced 返回t...
Leetcode 79 單詞搜尋
給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcced 返回 ...