目录
题目
思路
Code
题目
有一个字符串数组 words 和一个字符串 chars。假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。
words 的字符仅由 a-z 英文小写字母组成,例如“abc”
chars 由 az 英文小写字母和“2”组成。其中英文“?”表示万能字符,能够在拼写时当作任意一个英文字母。例如:“?”可以当作“a”等字母
注意: 每次拼写时,chars 中的每个字母和万能字符都只能使用一次
输出词汇表 words 中你掌握的所有单词的个数。没有掌握任何单词,则输出0。输入描述
第一行: 输入数组 words 的个数,记作N。
第二行~第N+1行: 依次输入数组words的每个字符串元素
第N+2行: 输入字符串chars
输出描述
输出一个整数,表示词汇表 words 中你掌握的单词个数
备注
1 ≤ words.length ≤ 100
1 < wordslil.length, chars.length < 100
所有字符串中都仅包含小写英文字母、英文问号示例1:
输入
4
cat
bt
hat
tree
atach??
输出
3说明:可以拼写字符串"cat”、“bt"和"hat”
示例2:
输入
3
helloworld
cloud
welldonehohneyr
输出
2
说明: 可以拼写字符串"hello"和"world"示例3:
输入
3apple
car
window
welldoneapplec?
输出2
说明: 可以拼写字符串"apple"和“car"
思路
1:主要考察hashmap这个数据结构。
2:分别统计words和chars的各个字母的个数,最后逐个对比看是否满足条件即可。
3:还有个巧妙的点在于可以用数组来模拟hashmap,因为毕竟key都是小写字母,可以用ascii 码来替代。
4:其实也是leetcode的原题改过来的, 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
编辑
Code
【华为od机试真题Python+JS+Java合集】【超值优惠】:Py/JS/Java合集
【华为od机试真题Python】:Python真题题库
【华为od机试真题JavaScript】:JavaScript真题题库
【华为od机试真题Java】:Java真题题库
【华为od机试真题C++】:C++真题题库
【华为od机试真题C语言】:C语言真题题库
【华为od面试手撕代码题库】:面试手撕代码题库
【华为od机试面试交流群:830285880】