给出一个矩阵,判断矩阵内的字母能否成环
INPUT:
第一行2个整数n,m(n,m<50) 表示矩阵的行列
下面n行 给出字母矩阵
OUTPUT:
有环输出Yes,否则输出No
案例输入1:
3 4
AAAA
ABCA
AAAA案例输出1:
Yes
案例输入2:
3 4
AAAA
ABCA
AADA案例输出2:
No
案例输入3:
4 4
YYYR
BYBY
BBBY
BBBY案例输出3:
Yes (4/6个B字母能成一个环)
基本思想:
遍历每个字母, 沿着字母走,走过的标记一下,如走到标记过的字母,则表示能成环;
易错:回头的处理, 走的下一步 一定不能是上一步的位置
代码如下:
#include <bits/stdc++.h>
using namespace std;
const int MAX=52;
char a[MAX][MAX];
int vis[MAX][MAX]; //用作标记的二维数组
int n,m;
int dx[]={0,1,0,-1},dy[]