解题思路
这题本质上是一个按照规则进行的模拟题。
先把单词表保存下来,并判断某个单词是否在单词表中出现过。然后按用户输入顺序逐个检查:
- 当前输入单词是否在单词表中;
- 当前输入单词的首字母是否等于当前单词的末字母。
P4706.第1题-单词接龙
题目描述
给定一个单词表和用户输入的若干个单词,模拟一个简化版的单词接龙游戏。
游戏规则如下:
-
程序开始时有一个当前单词。
-
用户每次输入一个单词,该单词必须满足以下两个条件才算合法:
- 该单词在给定单词表中出现过;
- 该单词的首字母等于当前单词的末字母。
-
如果用户输入的单词不合法,则游戏立即结束。
-
如果用户输入的单词合法,则用户得分加 1。
-
之后程序需要从单词表中选择下一个当前单词。为了保证结果唯一,规定:程序总是选择所有可接龙单词中,在单词表里最先出现的那个单词。
-
所谓“可接龙单词”,是指首字母等于当前用户输入单词末字母的单词。
-
如果不存在这样的下一个当前单词,则游戏结束。
-
输出游戏结束时的最终得分。
输入格式
第一行输入一个整数 n,表示单词表中单词的数量。
第二行输入 n 个单词,表示单词表。
第三行输入一个单词 start,表示初始当前单词。
第四行输入一个整数 m,表示用户输入的单词数量。
接下来 m 行,每行输入一个单词,表示用户依次输入的单词。
输出格式
输出一个整数,表示最终得分。
样例输入
5
elephant tulip pear rabbit tiger
tulip
4
pear
rabbit
tiger
apple
样例输出
1
样例说明
初始当前单词为 tulip。
最终得分为 1。
数据范围
- 1≤n≤1000
- 1≤m≤1000
- 每个单词长度不超过 20
- 所有单词仅由小写英文字母组成