Lintcode 單詞搜尋

2021-08-21 10:14:14 字數 970 閱讀 4497

單詞可以由按順序的相鄰單元的字母組成,其中相鄰單元指的是水平或者垂直方向相鄰。每個單元中的字母最多只能使用一次。

"abce",

"sfcs",

"adee"

word = "abcced"

, ->返回 true,

word = "see"

,-> 返回 true,

word = "abcb"

, -> 返回 false.思路

使用dfs,不過注意一下,這一題是需要回溯的,因為每次每個字母只能走一次,所以我們需要乙個記錄矩陣來判斷是否已經走過,下面看**和注釋:

public boolean exist(char board, string word) }}

return false;

}private boolean helper(char board, int i, int j, string word, int start, int record)

// 越界

if(i<0 || i>=rows || j<0 || j>=cols)

// 不通

if(board[i][j]!=word.charat(start))

// 已走

if(record[i][j]==1)

record[i][j] = 1;

if(helper(board,i-1,j,word,start+1,record))

if(helper(board,i+1,j,word,start+1,record))

if(helper(board,i,j-1,word,start+1,record))

if(helper(board,i,j+1,word,start+1,record))

// 回退,此條路不通,尋找其他方案

record[i][j] = 0;

return false;

}

單詞搜尋 LintCode

給出乙個二維的字母板和乙個單詞,尋找字母板網格中是否存在這個單詞。單詞可以由按順序的相鄰單元的字母組成,其中相鄰單元指的是水平或者垂直方向相鄰。每個單元中的字母最多只能使用一次。樣例 給出board abce sfcs adee word abcced 返回 true,word see 返回 tru...

lintcode 單詞搜尋 123

給出乙個二維的字母板和乙個單詞,尋找字母板網格中是否存在這個單詞。單詞可以由按順序的相鄰單元的字母組成,其中相鄰單元指的是水平或者垂直方向相鄰。每個單元中的字母最多只能使用一次。樣例 給出board abce sfcs adee word abcced 返回 true,word see 返回 tru...

LintCode 單詞搜尋 II

單詞搜尋 ii 給出乙個由小寫字母組成的矩陣和乙個字典。找出所有同時在字典和矩陣中出現的單詞。乙個單詞可以從矩陣中的任意位置開始,可以向左 右 上 下四個相鄰方向移動。您在真實的面試中是否遇到過這個題?yes 樣例 給出矩陣 doaf agai dcan和字典 返回 dog doafa gaidca...