AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2819. 掌握单词个数

简单通过率 41% · 提交 1,362 · 通过 564
哈希表字符串模拟

小慕有一个字符串数组 words 和一个字符串 chars。 假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么小慕就认为掌握了这个单词。 words 的字符仅由 a-z 英文小写字母组成,例如 “abc”。 chars 由 a-z 英文小写字母和 “?” 组成。其中英文问号 “?” 表示,能够在拼写时当做任意一个英文字母。 例如:“?” 可以当做 “a” 等字母。 注意:每次拼写时,。 输出词汇表 words 中小慕掌握的所有单词的个数。没有掌握任何单词,则输出 0。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第 1 行输入数组 words 的个数,记为 N。 </p> <p> 从第 2 行开始到第 N+1 行一次输入数组 words 的每个字符串元素。 </p> <p> 第 N+2 行输入字符串 chars。 </p>

输出描述

输出一个整数,表示词汇表 words 中你掌握的单词个数。

示例

示例 1

输入

4
cat
bt
hat
tree
at?ch

输出

3

说明:at?ch可以拼写出单词cat、hat和bt,因此掌握的单词是3个。

示例 2

输入

4
cat
bt
hat
tree
atach

输出

2

说明:atach可以拼写出单词cat和hat,因此掌握的单词是2个。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
拼写单词示例:chars = "at?ch"单词 "cat" 需要字母 c, a, tchars 中有 a, t, ?, c → 用 ? 代替 a 或 t 均可,成功chars 字母池at?ch单词 "cat" 所需字母cat匹配:c 用 c,a 用 a,t 用 t,? 未使用 → 成功掌握
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「掌握单词个数」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。