/*
对每个输入字符进行处理,我的样例是直接按ASCII码存入。当四个格子的和为399时,四个格子必然包含face四个字符。
另:本算法还可以进行空间优化。当输入第n行的数据时,需要使用n-1行的数据进行计算,计算结束之后n-1行可以删除。因此本题只需要两个一维数组即可完成计算。对于数组长度为50的情况下优化程度不高,但如果数组长度很长的话,还是有优化的必要的。
*/
#include<stdio.h>
int main()
{
int a[50][50],n,m;
int i,j,ans;
char c;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
c=10;
while(c==10) c=getchar();
a[i][j]=c;
}
m--;
n--;
ans=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]==399) ans++;
printf("%d\n",ans);
return 0;
}
int main()
{
int a[50][50],n,m;
int i,j,ans;
char c;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
c=10;
while(c==10) c=getchar();
a[i][j]=c;
}
m--;
n--;
ans=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]==399) ans++;
printf("%d\n",ans);
return 0;
}
全部评论
(0) 回帖