#848. 拼写单词

拼写单词

题目描述

给定一张『字母表』(字符串) chars 和 一份『词汇表』(字符串数组) words, 输出所有能用 『字母表』chars 中的『字母』拼写的单词。 注意:每次拼写时,chars 中的每个字母都只能用一次。 约定所有输入的字母都是小写字母。

输入格式

第一行一个字符串表示字母表 chars。 第二行一个正整数 n。 第三行 n 个 单词。

输出格式

输出一行,所有能用 『字母表』chars 中的『字母』拼写的单词,按出现顺序输出。

样例

输入样例 1

atach
4
cat bt hat tree

输出样例 1

cat hat

输入样例 2

abcde
7
ad eat tree ae tee tea ddi

输出样例 2

ad ae

输入样例 3

iqystabcd
8
ad eat tree ae tee tea ddi di

输出样例 3

ad di

提示

分析:对于一个单词 word,只要其中的每个字母的数量都不大于 chars 中对应的字母的数量,那么就可以用 chars 中的字母拼写出 word。 所以我们只需要用一个哈希表存储 chars 中每个字母的数量,再用一个哈希表存储 word 中每个字母的数量,最后将这两个哈希表的键值对逐一进行比较即可。