前往
大廳
主題

LeetCode - 824. Goat Latin 解題心得

Not In My Back Yard | 2021-01-21 00:00:04 | 巴幣 0 | 人氣 138

題目連結:


題目意譯:
給定一個句子 S,其由以空格隔開的多個字詞組成。每個字詞只由小寫和大寫字母組成。

我們想要將句子轉換成「山羊拉丁」(一個虛構語言,與豬拉丁(Pig Latin)相似)

山羊拉丁的規則為以下:
如果一個字詞由母音(a 、 e 、 i 、 o 或 u)開頭,則將 "ma" 加到該字詞的結尾。
例如,字詞 "apple" 變為 "applema"。

如果一個字詞以輔音(即非母音),移除第一個字母且附加到字詞的結尾,並加上 "na"。
例如,字詞 "goat" 變成 "oatgma"。

根據每個字詞於句子中的位置值之大小加上等價的 'a' 於結尾,位置索引值從 1 開始數。
例如,第一個字詞會加 'a' 到結尾,第二個字詞會加 "aa" 於結尾,以此類推。

回傳修改完的句子,代表著 S 轉到山羊拉丁之結果。

注:
S 只由大寫,小寫以及空白組成。每個字詞之間以恰好一個空白隔開。
1 ≦ S.length ≦ 150.



範例測資:
範例 1:
輸入: "I speak Goat Latin"
輸出: "Imaa peaksmaaa oatGmaaaa atinLmaaaaa"

範例 2:
輸入: "The quick brown fox jumped over the lazy dog"
輸出: "heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaaaaa azylmaaaaaaaaa ogdmaaaaaaaaaa"


解題思維:
單純模擬即可。

首先按照這題的作法找出以空白隔開的所有字詞們,然後將每個字詞按照題目的要求去判斷是以母音還是以輔音開頭。

判斷完後,看這個字詞是第幾個就加上幾個 'a' (也可以用另一字串儲存此資訊,一開始為 "a" ,第一個字詞判完後變為 "aa" ,第二個字詞結束變 "aaa" 以此類推)。最後將所有字詞再次以空白接在一起即是所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作