P1101 單詞方陣(DFS清晰)

2021-10-18 13:18:03 字數 1964 閱讀 2897

題目描述

給一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。(1007≤n≤100)。

第二行開始輸入nn×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

#include

#include

#include

using

namespace std;

const

int maxn =

110;

const

int dx=

;//方向陣列

const

int dy=

;string str =

"yizhong"

;// 比較陣列

char a[maxn]

[maxn]

;bool ans[maxn]

[maxn]

;int n;

void

dfs(

int x,

int y)

if(str[j]

!= a[nx]

[ny])}

if(flag ==0)

continue

;//不符合列舉下個方向

for(

int j =

0;j <=

6;j++)}

}int

main()

}for

(int i =

1;i <= n;i++)}

for(

int i =

1;i <= n;i++

) cout << endl;

}return0;

}

P1101 單詞方陣 簡單dfs

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

P1101 單詞方陣

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

P1101 單詞方陣

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