我的代码用的是暴力枚举
#include<iostream>
using namespace std;
int a[100001];
int b[100001];
char g[1001][1001];
int main(){
int ans = 0;
int n;
cin >> n;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cin >> g[i][j];
}
}
int hh = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(g[i][j] == 'y' and g[i][j + 1] == 'i' and g[i][j + 2] == 'z' and g[i][j + 3] == 'h' and g[i][j + 4] == 'o' and g[i][j + 5] == 'n' and g[i][j + 6] == 'g') ans++;
if(g[i][j] == 'y' and g[i][j - 1] == 'i' and g[i][j - 2] == 'z' and g[i][j - 3] == 'h' and g[i][j - 4] == 'o' and g[i][j - 5] == 'n' and g[i][j - 6] == 'g') ans++;
if(g[i][j] == 'y' and g[i + 1][j] == 'i' and g[i + 2][j] == 'z' and g[i + 3][j] == 'h' and g[i + 4][j] == 'o' and g[i + 5][j] == 'n' and g[i + 6][j] == 'g') ans++;
if(g[i][j] == 'y' and g[i - 1][j] == 'i' and g[i - 2][j] == 'z' and g[i - 3][j] == 'h' and g[i - 4][j] == 'o' and g[i - 5][j] == 'n' and g[i - 6][j] == 'g') ans++;
if(g[i][j] == 'y' and g[i + 1][j + 1] == 'i' and g[i + 2][j + 2] == 'z' and g[i + 3][j + 3] == 'h' and g[i + 4][j + 4] == 'o' and g[i + 5][j + 5] == 'n' and g[i + 6][j + 6] == 'g') ans++;
if(g[i + 1][j] == 'y' and g[i + 2][j + 1] == 'i' and g[i + 3][j + 2] == 'z' and g[i + 4][j + 3] == 'h' and g[i + 5][j + 4] == 'o' and g[i + 6][j + 5] == 'n' and g[i + 7][j + 6] == 'g') ans++;
else{
hh = 1;
}
}
}
if(hh == 1){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
g[i][j] = '*';
}
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cout << g[i][j];
}
cout << endl;
}
return 0;
}