最新华为OD机试
题目描述
电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字减下来,剪拼成匿名信。
现在又一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。
但为了增加文章的混淆度,只需满足每个单词中字母数量一致即可,不关注每个字母的顺序。
解释:单词on允许通过单词no进行替代。
报纸代表newspaper,匿名信代表anonymousLetter,求报纸内容是否可以拼成匿名信。
输入描述
第一行输入newspaper内容,包括1-N个字符串,用空格分开
第二行输入anonymousLetter内容,包括1-N个字符串,用空格分开。
newspaper和anonymousLetter的字符串由小写英文字母组成,且每个字母只能使用一次;
newspaper内容中的每个字符串字母顺序可以任意调整,但必须保证字符串的完整性(每个字符串不能有多余字母)
1 < N < 100,
1 <= newspaper.length,anonymousLetter.length <= 10^4
输出描述
如果报纸可以拼成匿名信返回true,否则返回false
用例1
输入
ab cd
ab
输出
true
用例2
输入
ab ef
aef
输出
false
用例3
输入
ab bcd ef
cbd fe
输出
true
用例4
输入
ab bcd ef
cd ef
输出
false
题目解析
题目理解
这道题目要求模拟一种“字母剪报拼接”的过程,核心在于匿名信中的单词是否可以通过报纸中的单词组合成,并且满足以下条件:
- 字母数量一致即可:匿名信中的每个单词可以通过报纸中的某个单词替换,只要两个单词中的字母组成(包括数量)一致,顺序可以不同。例如:
on
可以通过no
替代,因为字母组成一致。
- 每个单词只能使用一次:报纸中的单词在匹配到匿名信中的某个单词后,就不能再被使用。
- 报纸单词的完整性:报纸中的单词不能部分匹配匿名信中的单词,即