你的父母向你和你兄弟姊妹發起挑戰,要來一場二對二籃球賽。 他們自信滿滿,覺得自己一定會贏,於是先讓你們拿下幾分,接著才開始接管比賽。 為了提振士氣,你開始說起 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" -> "ay"(開頭是 "qu",前面沒有子音)"square" -> "aresqu" -> "aresquay"(開頭是一個子音後面接著 "qu")如果一個字開頭是一個或多個子音,後面接著 "y",就先把 "y"前面的子音移到字尾,然後在字尾加上 "ay" 的音。
一些例子:
"my" -> "ym" -> "ymay"(開頭是單一子音後面接著 "y")"rhythm" -> "ythmrh" -> "ythmrhay"(開頭是多個子音後面接著 "y")我們會看看模式比對和正規表達式,以及一個漂亮的 Prolog 解法,並問問你:你是真的解出了這道練習,還是只讓測試通過而已?