你的父母向你和你兄弟姐妹发起挑战,要打一场二对二篮球赛。他们觉得自己稳赢,所以先让你拿了几分,但接着就开始接管比赛。你需要一点助力,于是说起了 Pig Latin,那是孩子们自己编出来的一种语言,不是小孩的人很难听懂。这会让你占尽优势,赢过你的父母!
你的任务是把文本从英文翻译成猪拉丁语。这个翻译过程由四条规则定义,这些规则考察单词开头元音和辅音的模式。这些规则考察每个单词中元音和辅音的构成:
a、e、i、o和u
如果一个单词以元音开头,或者以"xr"或"yt"开头,就在单词末尾加上"ay"音。
例如:
"apple" -> "appleay"(以元音开头)"xray" -> "xrayay"(以"xr"开头)"yttria" -> "yttriaay"(以"yt"开头)如果一个单词以一个或多个辅音开头,先把这些辅音移到单词末尾,然后在单词末尾加上"ay"音。
例如:
"pig" -> "igp" -> "igpay"(以单个辅音开头)"chair" -> "airch" -> "airchay"(以多个辅音开头)"thrush" -> "ushthr" -> "ushthray"(以多个辅音开头)如果一个单词以零个或多个辅音后接"qu"开头,先把这些辅音(如果有的话)和"qu"部分移到单词末尾,然后在单词末尾加上"ay"音。
例如:
"quick" -> "ickqu" -> "ickquay"(以"qu"开头,前面没有辅音)"square" -> "aresqu" -> "aresquay"(以一个辅音后接"qu开头)如果一个单词以一个或多个辅音后接"y"开头,先把"y"前面的辅音移到单词末尾,然后在单词末尾加上"ay"音。
一些例子:
"my" -> "ym" -> "ymay"(以单个辅音后接"y"开头)"rhythm" -> "ythmrh" -> "ythmrhay"(以多个辅音后接"y"开头)我们会看看模式匹配和正则表达式,以及一个漂亮的 Prolog 解法,最后问一句:你是真正解决了这道练习,还是只是让测试通过了?