12
宜人的
甲混成词是两个词的组合拍摄每一个单词的一部分,使它们变成单一的新词。例如,狮子 + 老虎 => liger。 让我们编写一个从一对输入单词生成portmanteaus的程序。电脑不是英语水平最好的,所以我们需要建立一些规则以确保输出的portmanteaus令人耳目一新。 (为清楚起见li|ger,此处的示例在前缀和后缀之间显示了分隔符:。但是,程序的实际输出不应包含分隔符:liger。) 每个portmanteau将由第一个单词的非空前缀与第二个单词的非空后缀组成:yes到li|ger,no to |iger。 如果前缀以元音结尾,则后缀必须以辅音开头,反之亦然:是lio|ger或l|er,否是lio|iger或l|ger。您可以决定算作y元音还是辅音。但是,您的解决方案必须选择一个选项并坚持使用。 产生的字词不得完整包含两个原始字词:是lio|ger,lion|iger或li|tiger。 即使所讨论的部分是由两个单词的一部分组成的,该规则仍然成立:输入为two+时words,输出tw|ords仍然是非法的,因为它包含子字符串words。(此对的唯一有效输出是t|ords。) 您的程序或函数必须使用两个单词,并输出/返回可以由这些单词按该顺序形成的所有令人愉悦的portmanteaus列表。 细节 标准输入和输出方法适用。禁止出现标准漏洞。 单词将仅包含小写字母(或者,如果您愿意,也仅包含大写字母)。 您可以将两个输入单词作为列表,元组,两个单独的输入,带有非字母定界符的单个字符串等。 输出格式同样具有灵活性;如果您返回或输出一个字符串,则应将其定界,以使一个portmanteau单词的末尾清晰而下一个开始。 在portmanteau单词内不应有任何定界符。 如果您的输出列表中包含重复的结果,也可以;也可以删除重复项。 测试用例 > lion, tiger < liger, ler, liger, lir, lioger, lior > tiger, lion < tion, ton, tin, tigion, tigon, tigen > spoon, fork < sork, spork, spork, spok, …