审查器是互连网上使用的常用工具。但是他们经常审查太多的单词,因此使读者感到模棱两可。有时,他们没有进行足够的审查,因此这些词仍然令人反感。您的任务是解决该问题。
你的任务
编写一个包含两个列表和一个字符串的程序/函数/程序。第一个列表将是您语言中所有单词的字典,例如:["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]
。下一个将是第一个列表的子集,其中包含该语言中的所有令人反感的单词:["belgium", "offensive"]
。确保这些列表中的单词仅包含小写字母。
该字符串是您必须检查的短语。它将由字典中的单词组成,并用空格分隔:"Goodbye offensive belgium"
返回值将是被检查的短语。但是,您必须以某种方式进行审查。具体来说,对于攻击性列表中的每个单词,您必须检查尽可能多的字母,同时在主词典中保持完全明确。因此,这里将是:Goodbye o******** b******
。
澄清说明
- 您的代码必须不区分大小写地解释单词,但以大写字母返回。
- 如果有多个最佳答案,请选择其中任何一个。
- 如果无法进行明确的审查,则审查具有最少其他可能解释数量的单个字母(如果可能的话,则由您选择)。
测试用例
["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
["word"] ["word"] "word" -> "****"
["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" or "ha*"
https://gist.github.com/deekayen/4148741 ["quart"] "I am a quart" -> "I am a q**r*"
这是代码高尔夫球,因此以字节为单位的最短d * mn代码获胜!
附言:有人抓住比利时的参考吗?; P
@JerryJeremiah已修复。
—
马蒂森(Maltysen)2015年
非常感谢您将诸如“ B * lgium”之类的言论限制为艺术性的言论。
—
历史学家
@orlp我想我的问题还不够清楚。这些审查邮件的“阅读者”不知道审查清单的存在。他们只知道主要命令。
—
马蒂森(Maltysen)
@Maltysen-即使Zaphod本人也足够勇敢,可以在纯文本中使用b ******之类的词,即使在解释问题时也是如此。我感到震惊。你绝对不是胡闹!
—
Alchymist 2015年
["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
是测试用例,但是您说的是测试用例["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye offensive b******"
,对吗?