劍指offer之面試題12 矩陣中的路徑

2021-10-22 04:15:54 字數 1379 閱讀 3569

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣的任意一格開始,每一步可以在矩陣中向左、右、上、下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。

思路:採用回溯法

package question12;

public

class

t01, , };

// char map = };

// char map = null;

char

map =,,

};string str =

"aaa"

;findpath

(map, str,0)

; system.out.

println

(count);}

public

static

void

findpath

(char

map, string str,

int index)}}

}}public

static

void

setway

(char

map, string str,

int i,

int j,

int index)

if(i >

0&& markpath[i-1]

[j]==

0&& map[i-1]

[j]== str.

charat

(index+1)

)if(i < map.length-

1&& markpath[i+1]

[j]==

0&& map[i+1]

[j]== str.

charat

(index+1)

)if(j >

0&& markpath[i]

[j-1]==

0&& map[i]

[j-1

]== str.

charat

(index+1)

)if(j < map[i]

.length-

1&& markpath[i]

[j+1]==

0&& map[i]

[j+1

]== str.

charat

(index+1)

) markpath[i]

[j]=0;

}}

《劍指offer》面試題12 矩陣中的路徑

題目 請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左 右 上 下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。例如在下面的3 4的矩陣中包含一條字串 bfce 的路徑 路徑中的字母用下劃線標出 ...

劍指Offer 面試題12(矩陣中的路徑)

這裡是引用 題目描述 請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的徑。路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左 右 上 下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。例如在下面的3 4的矩陣中包含一條字串 bfce 的路徑 路徑中的字母...

劍指offer面試題12 矩陣中的路徑

a b t g c f c s j d e h 可以用回溯法來做這道題,首先,在矩陣中任選乙個格仔作為路徑的起點。假設矩陣中某個格仔的字元為ch,並且這個格仔對應於路徑上的第i個字元。如果路徑上的第i個字元不是ch,那麼這個格仔不可能處在路徑上的第i個位置。如果路徑上的第i個字元正好是ch,那麼到相...