代码如下:
#include<iostream>
using namespace std;
char s[15]="yizhong";
char a[105][105];
int v[105][105];
int n;
void dfs(int x,int y,int xx,int yy,int c){
if(x==-1||y==-1||x==n+1||y==n+1)
return;
if(c==7){
int xxx=-xx;
int yyy=-yy;
for(int i=1; i<=7; i--){
v[++xxx][++yyy]=1;
}
return;
}
if(a[x][y]!=s[c])
return;
dfs(x+xx,y+yy,xx,yy,c+1);
return;
}
int main()
{
cin>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>a[i][j];
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++){
dfs(i,j,-1,-1,0);
dfs(i,j,-1,0,0);
dfs(i,j,-1,1,0);
dfs(i,j,0,-1,0);
dfs(i,j,0,1,0);
dfs(i,j,1,-1,0);
dfs(i,j,1,0,0);
dfs(i,j,1,1,0);
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
if(v[i][j]==1)
cout<<a[i];
else cout<<"*";
cout<<endl;
}
return 0;
}
注:样例1过了,样例2没过