简单的字符串模拟题
题目背景
一封好的情书需要撰写人全身心的投入。CYY同学看上了可爱的iuaa想对她表白,但却不知道自己写的情书是否能感动她,现在他带着情书请你来帮助他。
题目描述
为了帮助CYY,我们定义一个量化情书好坏的标准感动值。判断感动值的方法如下:
- 在情书的一句话中若含有给定词汇列表中的特定单词,则感动值加1,但每一单词在同一句话中出现多次感动值不叠加,不同单词不受影响。保证输入的单词不重复。
- 每句话以英文句号定界。
- 全文不区分大小写。
输入格式
第一行包含一个数字n,表示导致感动值提升的词汇列表中单词的数量,随后n行是给定单词,每行一个。保证单词只包含英文字母。
最后一行为情书正文,保证只包含以下几种字符: 英文字母、数字、空格、英文逗号、英文句号。
输出格式
一个数字g,表示情书带来的感动值。
Inputs and Outputs examples
Inputs’ e.g. #1
1 | 3 |
Outputs e.g. #1
1 | 3 |
说明 / 提示
对于所有的数据,保证1 ≤ n,m,k ≤ 100,每个单词不超过50字符,全文不超过1000字符。
分析
Solution #1
简单AC自动机题目.
首先建立AC自动机,然后对于全文进行删除空格和不区分大小写处理.
然后以句号为界,每次把一个句子作为一个文本串,然后枚举一遍模式串,查询统计答案即可.
由于本题数据范围极小,这种做法理论上也是可以AC的.
Solution #2
首先对于原文进行删除空格和不区分大小写处理.
开一个map
记录一下关键词,然后暴力枚举原文进行判断并统计答案即可.
需要注意细节,比如应忽略空格,逗号,句号.注意对于map
的清零,等等.
代码 for Solution #2
1 | /* Headers */ |