題目描述:
給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。
單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中「相鄰」單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。
示例:board =
[[『a』,『b』,『c』,『e』],
[『s』,『f』,『c』,『s』],
[『a』,『d』,『e』,『e』]
]給定 word = 「abcced」, 返回 true.
給定 word = 「see」, 返回 true.
給定 word = 「abcb」, 返回 false.
class
solution
m = board.length;
n = board[0]
.length;
if(m * n < word.
length()
)boolean
market =
newboolean
[m][n]
;for
(int i =
0; i < m; i++)}
}return
false;}
private
boolean
backtrack
(int i ,
int j,
int index,
char
board,string word,
boolean
market)
if(i <
0|| i >= m || j <
0|| j >= n || board[i]
[j]!= word.
charat
(index)
||market[i]
[j])
market[i]
[j]=
true;if
(backtrack
(i,j+
1,index+
1,board,word,market)
||backtrack
(i,j-
1,index+
1,board,word,market)
||backtrack
(i+1
,j,index+
1,board,word,market)
||backtrack
(i-1
,j,index+
1,board,word,market)
) market[i]
[j]=
false
;return
false;}
}
Leetcode 79 單詞搜尋(中等)
給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcced 返回 ...
79 單詞搜尋
給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 board a b c e s f c s a d e e 給定 word abcced 返回t...
79 單詞搜尋
不允許重複使用字母 seen 0for i in range n for j in range m for i in range m for j in range n if self.search board,word,0,i,j,seen return true return false word...