[洛谷]P1234 小A的口头禅 (#模拟)

计数矩阵中'hehe'出现次数
本文介绍了一种算法,用于计算一个字符矩阵中特定字符串'hehe'的出现次数,无论其方向如何。通过直接模拟检查每个可能的位置,确保不将斜向的'hehe'计入,该算法提供了准确的计数结果。

题目描述

小A最近有了一个口头禅“呵呵”,于是他给出了一个矩形,让你求出里面有几个hehe(方向无所谓)。

输入输出格式

输入格式:

第一行两个数,n、m,表示这个矩形的大小。

以下n行,每行m的字符,表示这个矩形。

输出格式:

一行一个数,表示有几个hehe

输入输出样例

输入样例#1

5 5
heheh
heheh
heheh
heheh
heheh

输出样例#1

10

说明

1≤n,m≤1000

有1个点就是样例!


思路

直接模拟后面的数是不是“ehe”,注意斜着是不可以算作“hehe”的。

#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int n,m,s;
char a[1002][1002];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	register int i,j,k;
	cin>>n>>m;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			if(a[i][j]=='h')
			{
				if(a[i][j-1]=='e' && a[i][j-2]=='h' && a[i][j-3]=='e')
				{
					s++;
				}
				if(a[i][j+1]=='e' && a[i][j+2]=='h' && a[i][j+3]=='e')
				{
					s++;
				}
				if(a[i-1][j]=='e' && a[i-2][j]=='h' && a[i-3][j]=='e')
				{
					s++;
				}
				if(a[i+1][j]=='e' && a[i+2][j]=='h' && a[i+3][j]=='e')
				{
					s++;
				}
			}
		}
	}
	cout<<s<<endl;
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值