列表

详情


NC22233. 字符框

描述

给你n∗m的二维网格,求2∗2的方格的个数,方框里面的字符可以构成'face'

输入描述

第一行输入两个整数n,m

接下来n行每行m个小写字符

1<=n,m<=50

输出描述

输出满足条件的2∗2的方格的数量

示例1

输入:

2 3
fac
cef

输出:

2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 2ms, 内存消耗: 364K, 提交时间: 2023-03-05 20:34:49

#include<stdio.h>
int main()
{
	 int i,j,cnt=0,b,c;
	char a[100][100];
	scanf("%d %d",&b,&c);
	getchar();
	for(i=0;i<b;i++)
	gets(a[i]);
	for(i=0;i<b-1;i++)
	for(j=0;j<c-1;j++)
	if((a[i][j]+a[i+1][j+1]+a[i+1][j]+a[i][j+1])==('f'+'a'+'c'+'e'))cnt++;
     printf("%d",cnt);
}

C++(clang++11) 解法, 执行用时: 4ms, 内存消耗: 376K, 提交时间: 2021-01-21 20:32:53

#include<stdio.h>
int main()
{
	int n,m,sum=0,i,j;
	scanf("%d%d",&n,&m);
	char a[n][m];
	for(i=0;i<n;i++)
	scanf("%s",&a[i]);
	for(i=0;i<n-1;i++)
	for(j=0;j<m-1;j++)		
	if(a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]==399)sum++;	
	printf("%d",sum);
}

Python3 解法, 执行用时: 69ms, 内存消耗: 7040K, 提交时间: 2021-11-25 21:35:51

n,m=map(int,input().split())
a={}
s= {i for i in 'face'}
c=0
for i in range(n):
    a[i]=input()
    if i>0:
        for j in range(m-1):
            if set(a[i-1][j:j+2]+a[i][j:j+2])==s:
                c+=1
print(c)

上一题