2020年团体程序设计天梯赛-总决赛 L1-6 吃火锅

L1-6 吃火锅 (15分)

chg.jpg

以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。

本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1

输入格式:
输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。

输出格式:
首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其中是否包含 chi1 huo3 guo1,并且统计这样厉害的信息有多少条。在第二行中首先输出第一次出现 chi1 huo3 guo1 的信息是第几条(从 1 开始计数),然后输出这类信息的总条数,其间以一个空格分隔。题目保证输出的所有数字不超过 100。

如果朋友从头到尾都没提 chi1 huo3 guo1 这个关键词,则在第二行输出一个表情 -_-#

输入样例 1:

Hello!
are you there?
wantta chi1 huo3 guo1?
that's so li hai le
our story begins from chi1 huo3 guo1 le
.

输出样例 1:

5
3 2

输入样例 2:

Hello!
are you there?
wantta qi huo3 guo1 chi1huo3guo1?
that's so li hai le
our story begins from ci1 huo4 guo2 le
.

输出样例 2:

5
-_-#
作者 陈越
单位 浙江大学
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

题解

cnt 记录 信息的总条数
huoguo 记录 第一次出现 chi1 huo3 guo1 的信息是第几条
hgcnt 记录 吃火锅信息有多少条
flag 判断 输入是否结束

find() 函数 判断信息中是否含有 chi1 huo3 guo1

#include<bits/stdc++.h>
#include<string>
using namespace std;
string goal = "chi1 huo3 guo1";
string s;
bool find() {
	int len = s.length();
	for(int i=0; i<=len-14; ++i) {
		if(goal == s.substr(i,14)) {
			return true;
		}
	}
	return false;
}
int main() {
	bool flag = true;
	int huoguo = 0, hgcnt = 0;
	int cnt = 0;
	do {
		getline(cin,s);
		if(s == ".") {
			flag = false;
		} else {
			cnt++;
			if(find()) {
				if(huoguo == 0) {
					huoguo = cnt;
				}
				hgcnt++;
			}
		}
	} while(flag);
	printf("%d\n",cnt);
	if(huoguo) {
		printf("%d %d\n",huoguo,hgcnt);
	} else {
		printf("-_-#\n");
	}
	return 0;
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值