兒童黑話

兒童黑話

中等

簡介

你的父母向你和你兄弟姊妹發起挑戰,要來一場二對二籃球賽。 他們自信滿滿,覺得自己一定會贏,於是先讓你們拿下幾分,接著才開始接管比賽。 為了提振士氣,你開始說起 Pig Latin,那是一種虛構的兒童語言,非兒童很難聽懂。 這下你就能佔上風,擊敗你的父母了!

說明

你的任務是把英文翻譯成 Pig Latin。 這個翻譯由四條規則定義,這些規則會看單字開頭的母音與子音的模式。 這些規則會看每個單字如何使用母音和子音:

  • 母音:字母 a、e、i、o 和 u
  • 子音:英文字母中其餘的 21 個字母

規則 1

如果單字以母音開頭,或以 "xr" 或 "yt" 開頭,就在單字結尾加上 "ay" 的音。

例如:

  • "apple" -> "appleay"(以母音開頭)
  • "xray" -> "xrayay"(以 "xr" 開頭)
  • "yttria" -> "yttriaay"(以 "yt" 開頭)

規則 2

如果單字以一個或多個子音開頭,先把那些子音移到單字結尾,然後在單字結尾加上 "ay" 的音。

例如:

  • "pig" -> "igp" -> "igpay"(以單一子音開頭)
  • "chair" -> "airch" -> "airchay"(以多個子音開頭)
  • "thrush" -> "ushthr" -> "ushthray"(以多個子音開頭)

規則 3

如果單字以零個或多個子音後面接著 "qu" 開頭,先把那些子音(如果有的話)和 "qu" 部分移到單字結尾,然後在單字結尾加上 "ay" 的音。

例如:

  • "quick" -> "ickqu" -> "ickquay"(以 "qu" 開頭,前面沒有子音)
  • "square" -> "aresqu" -> "aresquay"(以一個子音後面接著 "qu" 開頭)

規則 4

如果單字以一個或多個子音後面接著 "y" 開頭,先把 "y" 前面的子音移到單字結尾,然後在單字結尾加上 "ay" 的音。

來看幾個例子:

  • "my" -> "ym" -> "ymay"(以單一子音後面接著 "y" 開頭)
  • "rhythm" -> "ythmrh" -> "ythmrhay"(以多個子音後面接著 "y" 開頭)
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
TypeScript Exercism

準備好開始 兒童黑話 了嗎?

註冊 Exercism,透過 108 個練習 和真人引導來學習並精通 TypeScript,全部免費。

深入探索 兒童黑話!

我們會看看模式比對和正規表達式,以及一個漂亮的 Prolog 解法,並問問你:你是真的解出了這道練習,還是只讓測試通過而已?