給一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
*yizhong1.首先用乙個map陣列儲存輸入的字母矩陣,然後用乙個同樣大小vis陣列用來記錄單詞「yizhong」所在的位置。gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
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 輸出 ...