NC22233. 字符框
描述
输入描述
第一行输入两个整数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)