文章
21
粉丝
0
获赞
19
访问
3.6k
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int N;
vector<string> matrix;
int n;
string word;
bool flag = 0;
bool ans = 0; // 表示是否至少存在一个
// 方向矩阵
int direction[2][8] = {{0, 0, 1, 1, 1, -1, -1, -1},
{1, -1, 0, 1, -1, 0, 1, -1}};
// 搜索
void dfs(int i, int j, int l, int dir) {
if (l == n) {
flag = 1;
return;
}
if (i < 0 || i >= N || j < 0 || j >= N) // 边界
return;
if (matrix[i][j] != word[l])
return;
dfs(i + direction[0][dir], j + direction[1][dir], l + 1, dir);
};
int main() {
cin >> N;
for (int i = 0; i < N; i++) {
string tmp, s;
for (int j = 0; j < N; j++) {
cin >> tmp;
s = s + tmp;
}
matrix.push_back(s);
s.clear();
}
cin >> word;
n = word.size();
//---------------------------------------------------
if (n > N) cout << "Not Found";
// 搜索
for (int i = 0; i < N; i++) {
for ...
登录后发布评论
暂无评论,来抢沙发