这里是传送门啊
题目描述
小A最近有了一个口头禅“呵呵”,于是他给出了一个矩形,让你求出里面有几个hehe(方向无所谓)。
输入输出格式
输入格式:
第一行两个数,n、m,表示这个矩形的大小。
以下n行,每行m的字符,表示这个矩形。
输出格式:
一行一个数,表示有几个hehe。
输入输出样例
输入样例#1:
5 5
heheh
heheh
heheh
heheh
heheh
输出样例#1:
10
说明
1≤n,m≤1000
有1个点就是样例!
思路
呵呵......真的是寻找hehe啊,那就找呗,一开始不知道斜着算不算,然后打了一个上下左右的,然后就过了2333
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#define N 1010
using namespace std;
char a[N][N];
int n,m;
long long ans=0;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='h'){
if(a[i+1][j]=='e'&&a[i+2][j]=='h'&&a[i+3][j]=='e')ans++;
if(a[i][j+1]=='e'&&a[i][j+2]=='h'&&a[i][j+3]=='e')ans++;
if(a[i-1][j]=='e'&&a[i-2][j]=='h'&&a[i-3][j]=='e')ans++;
if(a[i][j-1]=='e'&&a[i][j-2]=='h'&&a[i][j-3]=='e')ans++;
}
}
}
cout<<ans<<'\n';
return 0;
}