P1101 單詞方陣

2021-10-03 03:53:43 字數 1817 閱讀 3317

給一n×n的字母方陣,內可能蘊含多個「yizhong」單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用*代替,以突出顯示單詞。例如:

輸入:

8 輸出:

qyizhong *yizhong

gydthkjy gy******

nwidghji n*i*****

orbzsfgz o**z****

hhgrhwth h***h***

zzzzzozo z****o**

iwdfrgng i*****n*

yyyygggg y******g

第一行輸入乙個數n。(7≤n≤100)。

第二行開始輸入n×n的字母矩陣。

突出顯示單詞的n×n矩陣。

輸入

7

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

輸出

*******

*******

*******

*******

*******

*******

*******

輸入

8

qyizhong

gydthkjy

nwidghji

orbzsfgz

hhgrhwth

zzzzzozo

iwdfrgng

yyyygggg

輸出

*yizhong

gy******

n*i*****

o**z****

h***h***

z****o**

i*****n*

y******g

1.首先用乙個map陣列儲存輸入的字母矩陣,然後用乙個同樣大小vis陣列用來記錄單詞「yizhong」所在的位置。

2.首先遍歷字母矩陣,先找到字母「y」所在的位置,然後遍歷8個方向尋找是否有字母「i」。

3.如果存在字母「i」,沿著字母「i」所在的方向進行搜尋,直到7個字母都存在為止。

#include#includeusing namespace std;

string word = "yizhong";

char map[110][110];

int vis[110][110] = ;

int x[8] = , y[8] = ;//8個方向

void dfs(int px, int py, int k, int cnt) //分別代表當前點的座標x,y,以及方向k,以及當前第幾個點now

} else }}

int main()

for(int i= 0;ifor (int j = 0; j < n; j++)

}} for (int i = 0; i < n; i++)

cout << endl;

} return 0;

}

P1101 單詞方陣

給一nxn的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間 color red 可以 color 交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8...

P1101 單詞方陣

題目鏈結 題目描述 給一 n n 的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 ...

P1101 單詞方陣

給一 n times nn n 的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 ...